SpringBoot項目如何打war包問題詳解
1、pom.xml配置修改
<packaging>jar</packaging> //修改為 <packaging>war</packaging>
2、pom文件添加如些依賴
<!--添加servlet-api的依賴,用來打war包 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency>
3、排除springboot內置的tomcat幹擾
<!--最終打成war包,排除內置的tomcat--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
4、改造啟動類
如果是war包發佈,需要增加SpringBootServletInitializer子類,並重寫其configure方法,
或者將main函數所在的類繼承SpringBootServletInitializer,並重寫configure方法
當時打包為war時上傳到tomcat服務器中訪問項目始終報404錯就是忽略瞭這個步驟!!!
改造之前:
@SpringBootApplication public class MainApp { public static void main(String[] args) { SpringApplication.run(MainApp.class,args); } }
改造之後:
@SpringBootApplication public class SpringBootMytestApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(SpringBootMytestApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 註意這裡要指向原先用main方法執行的Application啟動類 return builder.sources(SpringBootMytestApplication.class); } }
這種改造方式也是官方比較推薦的方法
5、pom文件中不要忘瞭maven編譯插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
打包操作:
war包打包成功。
如果想用idea中的外置tomcat驗證war包是否正常,方法如下:
如果不改成“/” 訪問時路徑前要加上此路徑內容,如下圖。
驗證成功
到此這篇關於SpringBoot項目如何打war包問題詳解的文章就介紹到這瞭,更多相關SpringBoot項目打war包內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 如何將SpringBoot項目打成 war 包並部署到Tomcat
- centos環境下使用tomcat 部署SpringBoot的war包
- springboot項目如何打war包流程的方法
- 解決Intellij IDEA覆蓋tomcat配置的問題
- 詳解如何更改SpringBoot TomCat運行方式