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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章