springboot打包成war,部署到tomcat无法访问的问题

如题:实在是太坑。平时本地测试觉得很方便,但是到了项目打包发布掉链子了。

如很多帖子一样:

首先springboot内嵌的tomcat,再依赖servlet-api,修改启动类继承SpringBootServletInitializer,打成war放入tomcat中

一、pom.xml删掉内嵌tomcat

`
     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope><!-- 打成war的时候打开注释,本地开发用内嵌tomcat时加上注释 -->
    </dependency>
  <dependency>     <groupId>javax.servlet</groupId>     <artifactId>javax.servlet-api</artifactId>     <version>3.1.0</version>  </dependency>

二、启动类:Application

    @SpringBootApplication
    @ComponentScan(basePackages = "com.yzker")
    public class Application extends SpringBootServletInitializer {

        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }

        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }

    }

再打包发布,然而然并卵。

最后的解决方法是在idea重新配了个Tomcat server。本地调试,本地能跑起来。打成war包服务器也能跑起来,这才是真实的模拟环境。这也是springBoot的缺陷。

原文地址:https://www.cnblogs.com/zeussbook/p/10792567.html

时间: 2024-09-30 09:30:21

springboot打包成war,部署到tomcat无法访问的问题的相关文章

spirng boot打包成war部署

最近一段时间一直在研究和学习springboot,感觉其十分便利好用.以前使用spring搭建项目都整好多繁琐的配置,使用了springboot后这些繁琐的配置统统都不要了.但就是对springboot部署的方式感觉有点不爽,还是比较喜欢打包成war来进行部署. 在spring中有这样一个类:org.springframework.web.SpringServletContainerInitializer,阅读该类的注释发现该类的作用是使用编程方式的替代web.xml的.其原理就在于该类位于sp

spring boot项目打包成war并在tomcat上运行的步骤

把spring-boot项目按照平常的web项目一样发布到tomcat容器下 一.修改打包形式 在pom.xml里设置 <packaging>war</packaging> 二.移除嵌入式tomcat插件 在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码, 第一种<dependency> <groupId>org.springframework.boot</groupId> <artifact

spring boot tomcat 打本地包成war,通过Tomcat启动时出现问题: ZipException: error in opening zip file

一个第三方公司提供spring boot 项目,直接启动是ok的, 但是打包成war,通过Tomcat启动,就出现 ZipException: error in opening zip file: 20-Mar-2019 15:48:28.385 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [F:\dev\apache-t

怎么将maven项目打包成war包

问题:我在eclipse上能运行,然后我想将这个maven项目打包成war然后放到另外一台机子上(其实是手动放在tomcat的webapp目录中),提供外部访问.现在问题是,一直maven项目打包一直出错.请问大侠怎么将maven打包好?万分感谢 回答1:右键项目,选择Run As,再选择Maven build...,这时会弹出个新界面,在Goals里输入clean package,然后点击Run就行了,打包好的项目放在target文件夹下面.clean package是maven的一个命令,意

spring boot 在STS里将项目打包成war

spring boot通过在maven的pom.xml里面添加spring boot自带的打包插件,可以直接将项目打包成可执行的jar文件 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </p

VS2010把项目发布、打包成可安装部署的应用程序

本文要解决的问题: 详细介绍用VS2010将项目发布.打包成可部署的应用程序的过程,通过一步步操作,最后能顺利完成. 1. 在vs2010 选择"新建项目"à" 其他项目类型"à" Visual Studio Installerà "安装项目": 命名为:Setup1 . 这是在VS2010中将有三个文件夹, 1."应用程序文件夹"表示要安装的应用程序需要添加的文件: 2."用户的'程序'菜单"表

打包成war包之后如何读取配置文件

今天工作开发中遇到一个问题:在idea运行的项目读取配置文件没有问题,打包成war包之后就会报错java.io.FileNotFoundException: class path resource 原因: 打包成war包后,配置文件在war包中,不是一个独立的文件了,无法通过File的方式访问 String filePath = "classpath:template_xml/readexcel/test.xml"; File file = ResourceUtils.getFile(

SpringBoot打包为war包,并在tomcat中运行

先看一下我创建的最简单的项目吧. controller类 @RestController public class TestController { @RequestMapping("index") public String index() { return "hello"; } } pom文件没有做任何修改,我们直接启动这个项目,注意看启动的日志中有关嵌入式tomcat的版本的 我这里的版本是8.5.37,这个是由你选用的springboot的版本定的,我选用的

Spring boot打包为可部署在tomcat下运行的war文件的方法(使用Gradle、Intellij IDEA)

使用Gradle: dependencies { compile("org.springframework.boot:spring-boot-starter-web") providedCompile("org.springframework.boot:spring-boot-starter-tomcat")//此处使用providedCompile,则生成的jar包可放入tomcat内运行// compile("org.springframework.b