SpringBoot項目打包war包時無法運行問題的解決方式
序
現(xiàn)實的情況下遇見過該問題剛好記錄一下!
SpringBoot項目打包
首先默認創(chuàng)建的maven springBoot項目進行代碼的clean 和 install進行項目打包的時候默認是使用jar 包的形式進行打包的,如果需要進行war 包打包部署的話就需要修改相應(yīng)的 數(shù)據(jù)內(nèi)容了
jar 包 和 tomcat 包
- jar 包打完之后進行部署的時候使用 java -jar 的啟動方式進行啟動 可以設(shè)置相應(yīng)的虛擬機參數(shù) 部署完成之后 看不得內(nèi)部的相關(guān)文件信息對于文件的安全性比較高。
啟動腳本示例:
nohup /opt/jdk8/bin/java -server -Xms4G -Xmx4G -XX:MaxMetaspaceSize=256m -Xmn1G -XX:SurvivorRatio=6 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -jar /opt/api/xx.jar --spring.profiles.active=prod > /opt/logs/xx.out 2>&1 &
- war 包的話是依賴于類似與tomcat之類的容器進行解析部署的 一般而言都是 以下方式啟動
war啟動的時候?qū)ar包丟到相應(yīng)tomcat webapps 路徑下面就行

cd /tomcat/bin chmod -x *.sh sh catalina.sh run
對于war包來說 可能對于一些變化大的包便于維護 比如前后端 不分離的項目如果臨時需要改部分頁面以及配置信息可以臨時修改而不用全部項目打包升級。
實際問題及解決方式
問題
在實際開發(fā)過程中使用的就是springboot項目開發(fā)然后并且選擇的的打包方式上也是使用了war的模式但是在實際打算提交測試的時候發(fā)現(xiàn)war打出來之后在tomcat中運行是存在問題的 就是容器啟動了但是相應(yīng)的服務(wù)卻沒辦法使用
解決方法
- 確認打包方式
<packaging>war</packaging>
- 不使用內(nèi)部的tomcat版本等信息進行打包忽略自身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>- 采用外部的tomcat進行依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>- 啟動類(ps: 這里得注意的是 .sources .run 都是自己的啟動類名稱)
@SpringBootApplication
@MapperScan("com.smile.ssm.dao")
@EnableScheduling
@EnableAsync
public class HisApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(HisApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(HisApplication.class, args);
System.out.println("******************SSM project start success ?。?!***********************");
}
}mvn重新打包測試
如果以上還不行的話依賴pom 中在加一個指定的 tomcat 版本信息
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-servlet-api -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>8.5.70</version>
</dependency>end
到此這篇關(guān)于SpringBoot項目打包war包時無法運行問題解決的文章就介紹到這了,更多相關(guān)SpringBoot打包war包無法運行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 基于Java的打包jar、war、ear包的作用與區(qū)別詳解
- Maven項目打包成war包部署到Tomcat的方法
- Maven引入本地Jar包并打包進War包中的方法
- 淺談maven的jar包和war包區(qū)別 以及打包方法
- SpringBoot項目打包成war包并部署在tomcat上運行的操作步驟
- spring boot項目打包成war在tomcat運行的全步驟
- Spring Boot打包war jar 部署tomcat
- SpringBoot項目如何打包成war包
- Spring Boot將項目打包成war包的操作方法
- springboot文件打包成jar或war的方法
- 前端vue項目打包為war包的實現(xiàn)示例
相關(guān)文章
SpringBoot集成Prometheus實現(xiàn)監(jiān)控的過程
這篇文章主要介紹了SpringBoot集成Prometheus實現(xiàn)監(jiān)控,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09
java日期時間格式化@JsonFormat與@DateTimeFormat的使用
本文主要介紹了java日期時間格式化@JsonFormat與@DateTimeFormat的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08
springboot中ApplicationRunner執(zhí)行順序問題小結(jié)
SpringBoot中ApplicationRunner用于應(yīng)用啟動后執(zhí)行初始化任務(wù),通過@Order注解可控制多個Runner的執(zhí)行順序,數(shù)值越小越優(yōu)先,下面就一起來了解一下2025-06-06
Spring Boot 通過AOP和自定義注解實現(xiàn)權(quán)限控制的方法
這篇文章主要介紹了Spring Boot 通過AOP和自定義注解實現(xiàn)權(quán)限控制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11

