1. 程式人生 > >springboot 打包war包外部tomcat部署,專案啟動失敗

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中能夠啟動了