springboot 打包war包外部tomcat部署,專案啟動失敗
阿新 • • 發佈:2018-12-26
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中能夠啟動了