SpringBoot項(xiàng)目打包war包時(shí)無法運(yùn)行問題的解決方式
序
現(xiàn)實(shí)的情況下遇見過該問題剛好記錄一下!
SpringBoot項(xiàng)目打包
首先默認(rèn)創(chuàng)建的maven springBoot項(xiàng)目進(jìn)行代碼的clean 和 install進(jìn)行項(xiàng)目打包的時(shí)候默認(rèn)是使用jar 包的形式進(jìn)行打包的,如果需要進(jìn)行war 包打包部署的話就需要修改相應(yīng)的 數(shù)據(jù)內(nèi)容了
jar 包 和 tomcat 包
- jar 包打完之后進(jìn)行部署的時(shí)候使用 java -jar 的啟動(dòng)方式進(jìn)行啟動(dòng) 可以設(shè)置相應(yīng)的虛擬機(jī)參數(shù) 部署完成之后 看不得內(nèi)部的相關(guān)文件信息對于文件的安全性比較高。
啟動(dòng)腳本示例:
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之類的容器進(jìn)行解析部署的 一般而言都是 以下方式啟動(dòng)
war啟動(dòng)的時(shí)候?qū)ar包丟到相應(yīng)tomcat webapps 路徑下面就行

cd /tomcat/bin chmod -x *.sh sh catalina.sh run
對于war包來說 可能對于一些變化大的包便于維護(hù) 比如前后端 不分離的項(xiàng)目如果臨時(shí)需要改部分頁面以及配置信息可以臨時(shí)修改而不用全部項(xiàng)目打包升級(jí)。
實(shí)際問題及解決方式
問題
在實(shí)際開發(fā)過程中使用的就是springboot項(xiàng)目開發(fā)然后并且選擇的的打包方式上也是使用了war的模式但是在實(shí)際打算提交測試的時(shí)候發(fā)現(xiàn)war打出來之后在tomcat中運(yùn)行是存在問題的 就是容器啟動(dòng)了但是相應(yīng)的服務(wù)卻沒辦法使用
解決方法
- 確認(rèn)打包方式
<packaging>war</packaging>
- 不使用內(nèi)部的tomcat版本等信息進(jìn)行打包忽略自身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進(jìn)行依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>- 啟動(dòng)類(ps: 這里得注意的是 .sources .run 都是自己的啟動(dòng)類名稱)
@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 中在加一個(gè)指定的 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項(xiàng)目打包war包時(shí)無法運(yùn)行問題解決的文章就介紹到這了,更多相關(guān)SpringBoot打包war包無法運(yùn)行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 基于Java的打包jar、war、ear包的作用與區(qū)別詳解
- Maven項(xiàng)目打包成war包部署到Tomcat的方法
- Maven引入本地Jar包并打包進(jìn)War包中的方法
- 淺談maven的jar包和war包區(qū)別 以及打包方法
- SpringBoot項(xiàng)目打包成war包并部署在tomcat上運(yùn)行的操作步驟
- spring boot項(xiàng)目打包成war在tomcat運(yùn)行的全步驟
- Spring Boot打包war jar 部署tomcat
- SpringBoot項(xiàng)目如何打包成war包
- Spring Boot將項(xiàng)目打包成war包的操作方法
- springboot文件打包成jar或war的方法
- 前端vue項(xiàng)目打包為war包的實(shí)現(xiàn)示例
相關(guān)文章
Java實(shí)現(xiàn)加油站支付小程序功能(存款與消費(fèi))
本文給大家介紹Java實(shí)現(xiàn)加油站支付小程序功能(存款與消費(fèi)),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-08-08
Mybatis?Plus批處理操作的實(shí)現(xiàn)示例
MyBatis?Plus?提供了強(qiáng)大的批處理支持,可以幫助我們高效地處理大規(guī)模數(shù)據(jù),本文主要介紹了Mybatis?Plus批處理操作的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07
Java Date 轉(zhuǎn) UTC 時(shí)間常見方法
在Java中處理日期時(shí)間轉(zhuǎn)換到UTC是一個(gè)常見需求,尤其是在全球化應(yīng)用中,下面我將詳細(xì)介紹多種實(shí)現(xiàn)方式,并提供一個(gè)完整的轉(zhuǎn)換工具示例,感興趣的朋友跟隨小編一起看看吧2025-08-08
SpringBoot集成Prometheus實(shí)現(xiàn)監(jiān)控的過程
這篇文章主要介紹了SpringBoot集成Prometheus實(shí)現(xiàn)監(jiān)控,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
java日期時(shí)間格式化@JsonFormat與@DateTimeFormat的使用
本文主要介紹了java日期時(shí)間格式化@JsonFormat與@DateTimeFormat的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
springboot中ApplicationRunner執(zhí)行順序問題小結(jié)
SpringBoot中ApplicationRunner用于應(yīng)用啟動(dòng)后執(zhí)行初始化任務(wù),通過@Order注解可控制多個(gè)Runner的執(zhí)行順序,數(shù)值越小越優(yōu)先,下面就一起來了解一下2025-06-06
Spring Boot 通過AOP和自定義注解實(shí)現(xiàn)權(quán)限控制的方法
這篇文章主要介紹了Spring Boot 通過AOP和自定義注解實(shí)現(xiàn)權(quán)限控制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

