springboot 打包war包外部tomcat部署,项目启动失败

springboot最方便的打包方式是jar包,然后用java -jar命令启动,但是有的时候还是需要打包成war包部署到外部tomcat上启动,今天遇到的这个问题就是。

1、将项目在idea里面可以完美启动,而且接口访问没有问题

2、打包成jar包或者war包用jar命令启动也正常,

3、就是将war包丢到本地tomcat上,启动tomcat,tomcat启动了但是项目没启动。

网上找了很多帖子,也都湿了,有的说tomcat的配置问题,有的说jsp的问题,还有maven的导包问题。都试了就是不行

springboot   内嵌tomcat打包时排除

<!-- spring boot 内置tomcat jsp支持 -->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <scope>provided</scope>
</dependency>
<dependency>
   <groupId>org.apache.tomcat.embed</groupId>
   <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

 最后拿着之前的项目对比各种试发现是因为启动类的问题

SpringBootServletInitializer 启动类是为了使springboot项目能够打包成war包。具体的讲解可以百度下

解决办法

@SpringBootApplication
public class Demo2Application extends SpringBootServletInitializer {

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

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

 最终让项目的启动类继承这个类,然后重新configure方法,ok完美解决。项目在tomcat中能够启动了

猜你喜欢

转载自blog.csdn.net/lxc_yinfengpolang/article/details/85260995