springboot打war包部署到外置tomcat容器的方法
打war包部署到外置tomcat容器
一、修改打包方式
<packaging>war</packaging>
將上面的代碼加入到pom.xml文件剛開始的位置,如下:
二、 排除內(nèi)置tomcat的依賴
我們使用外置的tomcat,自然要將內(nèi)置的嵌入式tomcat的相關jar排除。
<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>
三、新增加一個類繼承SpringBootServletInitializer實現(xiàn)configure:
為什么繼承該類,SpringBootServletInitializer源碼注釋:
Note that a WebApplicationInitializer is only needed if you are building a war file and deploying it.
If you prefer to run an embedded web server then you won’t need this at all.
注意,如果您正在構建WAR文件并部署它,則需要WebApplicationInitializer。如果你喜歡運行一個嵌入式Web服務器,那么你根本不需要這個。
public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { //此處的Application.class為帶有@SpringBootApplication注解的啟動類 return builder.sources(BootLaunchApplication.class); } }
注意事項:
使用外部Tomcat部署訪問的時候,application.properties(或者application.yml)中的如下配置將失效,請使用外置的tomcat的端口,tomcat的webapps下項目名進行訪問。
server.port= server.servlet.context-path=
四、build要有finalName標簽
pom.xml中的構建build代碼段,要有應用最終構建打包的名稱。
<finalName>boot-launch</finalName>
五、打包與運行
war方式打包,打包結果將存儲在項目的target目錄下面。
mvn clean package -Dmaven.test.skip=true
然后將war包copy到外置Tomcat webapps目錄里面。在外置tomcat中運行:${Tomcat_home}/bin/目錄下執(zhí)行startup.bat(windows)或者startup.sh(linux),然后通過瀏覽器訪問應用,測試效果。
需要注意的是
- 在boot-launch.war在tomcat webapps目錄里面解壓到boot-launch文件夾。所以當你訪問應用的時候,必須使用
http://localhost:8888/boot-launch/template/jsp
,不能是:http://localhost:8888/template/jsp
。會報404錯誤。 - jsp靜態(tài)資源引用也必須是:/boot-launch/image/xxxx.png,不能是/image/xxxx.png
- JSP的war包中,webjars的資源使用方式不再被支持
到此這篇關于springboot打war包部署到外置tomcat容器的文章就介紹到這了,更多相關springboot]打war包部署tomcat容器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
spring?boot使用攔截器修改請求URL域名?換?IP?訪問的方法
Spring Interceptor是一個非常類似于Servlet Filter 的概念 ,這篇文章主要介紹了spring?boot使用攔截器修改請求URL域名?換?IP?訪問的相關知識,需要的朋友可以參考下2022-09-09Java數(shù)據(jù)結構之棧的基本定義與實現(xiàn)方法示例
這篇文章主要介紹了Java數(shù)據(jù)結構之棧的基本定義與實現(xiàn)方法,簡單描述了數(shù)據(jù)結構中棧的功能、原理,并結合java實例形式分析了棧的基本定義與使用方法,需要的朋友可以參考下2017-10-10Java如何使用ReentrantLock實現(xiàn)長輪詢
這篇文章主要介紹了如何使用ReentrantLock實現(xiàn)長輪詢,對ReentrantLock感興趣的同學,可以參考下2021-04-04深入學習java并發(fā)包ConcurrentHashMap源碼
這篇文章主要介紹了深入學習java并發(fā)包ConcurrentHashMap源碼,整個 ConcurrentHashMap 由一個個 Segment 組成,Segment 代表”部分“或”一段“的意思,所以很多地方都會將其描述為分段鎖。,需要的朋友可以參考下2019-06-06Java實現(xiàn)鏈表數(shù)據(jù)結構的方法
這篇文章主要介紹了Java實現(xiàn)鏈表數(shù)據(jù)結構的相關資料,每一個鏈表都包含多個節(jié)點,節(jié)點又包含兩個部分,一個是數(shù)據(jù)域(儲存節(jié)點含有的信息),一個是引用域(儲存下一個節(jié)點或者上一個節(jié)點的地址),需要的朋友可以參考下2022-01-01