SpringBoot項(xiàng)目打包成war包并部署在tomcat上運(yùn)行的操作步驟
項(xiàng)目場(chǎng)景:
正常情況下,我們開發(fā) SpringBoot 項(xiàng)目,由于內(nèi)置了Tomcat,所以項(xiàng)目可以直接啟動(dòng),部署到服務(wù)器的時(shí)候,直接打成 jar 包,就可以運(yùn)行了。
有時(shí)我們會(huì)需要打包成 war 包,放入外置的 Tomcat 中進(jìn)行運(yùn)行,或者使用工具idea直接啟動(dòng),便于開發(fā)調(diào)試。
實(shí)現(xiàn)步驟
1、將pom文件打包方式更改為 war
<packaging>war</packaging>
2、 排除內(nèi)置 Tomcat
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 排除內(nèi)置的tomcat --> <exclusions> <exclusion> <artifactId>org.springframework.boot</artifactId> <groupId>spring-boot-starter-tomcat</groupId> </exclusion> </exclusions> </dependency>
3、添加tomcat依賴,需要用到 servlet-api 的相關(guān) jar 包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!-- tomcat范圍改成provided,否則后面就會(huì)出問(wèn)題,tomcat無(wú)法解析jsp --> <scope>provided</scope> </dependency>
4、 繼承 SpringBootServletInitializer 并重寫 configure 方法
新建文件文件名隨意,或者直接修改啟動(dòng)類繼承 SpringBootServletInitializer 并重寫 configure 方法,也是一樣的。
package com.test; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; /** * 注意,使用war方式部署,需要開啟此類 * */ public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(ApplicationMain.class); } }
部署方式:
方式一:使用外部tomcat啟動(dòng)
1、利用maven命令打包
2、 將打的war包,復(fù)制粘貼到tomcat的webapps目錄下(不用解壓,啟動(dòng)tomcat自動(dòng)解壓)
3、啟動(dòng)tomcat
在tomcat安裝目錄下的bin目錄下面找到startup.bat命令,啟動(dòng)tomcat
4、啟動(dòng)結(jié)果
war包自動(dòng)解壓了
5、 測(cè)試結(jié)果,訪問(wèn)swagger頁(yè)面:
訪問(wèn)路徑這里需要注意,原來(lái)我們?cè)赼pplication.properties配置的訪問(wèn)路徑已經(jīng)不生效了。
這是原來(lái)訪問(wèn)路徑:http://localhost:8080/testservice/swagger-ui.html
#已經(jīng)不生效了
server.servlet.context-path=/testservice
現(xiàn)在的訪問(wèn)路徑:
http://localhost:[端口號(hào)]/[打包項(xiàng)目名]/
比如我現(xiàn)在的訪問(wèn)路徑就是:
http://localhost:8080/spring-boot-test-war/swagger-ui.html
spring-boot-test-war是我打包后的項(xiàng)目名,這個(gè)可以改的。
方式二:使用工具idea直接啟動(dòng)
1、配置web.xml文件
點(diǎn)擊File->Project Structure
創(chuàng)建src/main/webapp和web.xml
此時(shí)項(xiàng)目結(jié)構(gòu)圖如下:
2、配置artifacts
配置完后,tomcat啟動(dòng)才能找到這個(gè)war包,會(huì)生成out目錄輸出文件。
當(dāng)然你也可以選擇target下面已經(jīng)打包好的war包,但是這樣有個(gè)缺點(diǎn),就是每次改文件你都需要用maven重新打包,輸出到target目錄下,不方便開發(fā)。
3、配置tomcat
在IDEA右上角的項(xiàng)目運(yùn)行列表中選中 Edit Configurations
進(jìn)入新的窗口點(diǎn)擊"+",找到Toncat Server中的Local進(jìn)行點(diǎn)擊,配置Tomcat路徑
4、tomcat 選擇啟動(dòng)的war包
這里注意選擇exploded結(jié)尾的,才是out目錄輸出的
Application context上下文配置訪問(wèn)路徑
訪問(wèn)路徑這里需要注意,原來(lái)我們?cè)赼pplication.properties配置的訪問(wèn)路徑已經(jīng)不生效了。
#已經(jīng)不生效了 server.servlet.context-path=/testservice
現(xiàn)在的訪問(wèn)路徑:
http://localhost:8080/testservice/swagger-ui.html
testservice是我Application context上下文配置的訪問(wèn)路徑 ,這個(gè)可以改的。
5、配置tomcat啟動(dòng)默認(rèn)打開的頁(yè)面
6、啟動(dòng)結(jié)果
點(diǎn)擊啟動(dòng)
到此這篇關(guān)于SpringBoot項(xiàng)目打包成war包并部署在tomcat上運(yùn)行的操作步驟的文章就介紹到這了,更多相關(guān)SpringBoot打包成war包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vue+springboot項(xiàng)目上傳部署tomcat的方法實(shí)現(xiàn)
- 淺談springboot內(nèi)置tomcat和外部獨(dú)立部署tomcat的區(qū)別
- vue打包部署到springboot并通過(guò)tomcat運(yùn)行的操作方法
- SpringBoot項(xiàng)目打包部署到Tomcat的操作流程
- SpringBoot中jar打包并部署到Tomcat
- 詳解springboot項(xiàng)目帶Tomcat和不帶Tomcat的兩種打包方式
- SpringBoot項(xiàng)目打包發(fā)布到外部tomcat(出現(xiàn)各種異常的解決)
- springboot項(xiàng)目打包并部署到Tomcat上及報(bào)錯(cuò)處理方案
相關(guān)文章
Java數(shù)組的定義、初始化、及二維數(shù)組用法分析
這篇文章主要介紹了Java數(shù)組的定義、初始化、及二維數(shù)組用法,結(jié)合具體實(shí)例形式分析了java數(shù)組概念、功能、數(shù)組定義、靜態(tài)數(shù)組、動(dòng)態(tài)數(shù)組、二維數(shù)組等相關(guān)使用技巧,需要的朋友可以參考下2019-01-01java對(duì)接微信支付之JSAPI支付(微信公眾號(hào)支付)
這篇文章主要給大家介紹了關(guān)于java對(duì)接微信支付之JSAPI支付(微信公眾號(hào)支付)的相關(guān)資料,微信JSAPI支付是近年來(lái)非常流行的一種支付方式,它使用了微信支付的SDK和demo來(lái)實(shí)現(xiàn)支付接口的對(duì)接,需要的朋友可以參考下2023-07-07Java基礎(chǔ)之隱式轉(zhuǎn)換vs強(qiáng)制轉(zhuǎn)換
這篇文章主要介紹了Java基礎(chǔ)之隱式轉(zhuǎn)換vs強(qiáng)制轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2015-12-12Java反射機(jī)制詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了Java反射機(jī)制的相關(guān)資料,主要包括反射的概念、作用2017-06-06Mybatis整合Spring 由于版本引起的BUG問(wèn)題
這篇文章主要介紹了Mybatis整合Spring 由于版本引起的BUG問(wèn)題,需要的朋友可以參考下2017-06-06Java面試Logback打印日志如何獲取當(dāng)前方法名稱題解
這篇文章主要為大家介紹了Java面試Logback打印日志如何獲取當(dāng)前方法名稱題解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11java實(shí)現(xiàn)銀行家算法(Swing界面)
這篇文章主要為大家詳細(xì)介紹了銀行家算法的java代碼實(shí)現(xiàn),Swing寫的界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12