從SpringBoot打war包并配置外部Tomcat運(yùn)行的全流程
環(huán)境
SpringBoot 2.6.15
Tomcat 8.5.100
JDK 1.8.0_281
Windows
正文
一、SpringBoot配置打war包
第一步:在Application啟動入口同級目錄下新增一個(gè)繼承了Servlet初始化器的類,文中是圈紅的ServletInitializer


第二步:在使用Maven構(gòu)建應(yīng)用程序時(shí)要在插件內(nèi)排除 spring-boot-starter-web 內(nèi)置的Tomcat依賴

第三步:顯示聲明packaging為war

至此,我們在使用Maven命令打包時(shí)即可打出war包

二、配置Tomcat
第一步:解決控制臺亂碼,在以下路徑中找到 logging.properties 文件更新
apache-tomcat-8.5.100\conf

java.util.logging.ConsoleHandler.encoding = GBK
說明:因?yàn)镃MD命令窗口默認(rèn)的字符集是GBK而Tomcat中的日志配置文件(logging.properties)中的編碼是UTF-8,因此當(dāng)運(yùn)行startup.bat時(shí),控制臺將輸出亂碼
第二步:讓Tomcat以指定的JDK運(yùn)行
好處是不必安裝JDK了,直接復(fù)制安裝好的JDK到Tomcat中就可以和Tomcat一體了
1、先將準(zhǔn)備好的JDK復(fù)制一份到Tomcat文件夾下

2、打開startup.bat配置JDK

:指定jdk版本,注意=前后不能有空格 set JAVA_HOME=D:\dev\apache-tomcat-8.5.100\jdk1.8.0_281 set JRE_HOME=D:\dev\apache-tomcat-8.5.100\jdk1.8.0_281\jre
3、配置項(xiàng)目上下文路徑(訪問項(xiàng)目前綴)
說明:我們的war包放在了Tomcat的webapps目錄下,默認(rèn)訪問項(xiàng)目的路徑要加上包名,比如我的war包是vote.war,我訪問項(xiàng)目的時(shí)候就是 ${ip}:${port}/vote/${requestMapping}
但,我不想要前綴也可以訪問,那就要配置,本文只提供更改server.xml的方式配置
apache-tomcat-8.5.100\conf
在上面的路徑中找到 server.xml 文件,在Host標(biāo)簽中加入Context標(biāo)簽

至此,Tomcat也配置好了,下面運(yùn)行測試


如果你也想在執(zhí)行startup.bat時(shí)顯示我上面那個(gè)窗體的配置信息可以直接在startup.bat最下方加入pause即可
pause;

圓滿成功
以上就是SpringBoot打war包并配置外部Tomcat運(yùn)行的全流程的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot打war包并配置Tomcat的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot整合Netty實(shí)現(xiàn)WebSocket的示例代碼
本文主要介紹了SpringBoot整合Netty實(shí)現(xiàn)WebSocket的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
JDK,TOMCAT,MAVEN,Springboot,Spring版本對應(yīng)詳解
本文介紹了如何升級JDK、Tomcat和Maven,并詳細(xì)描述了配置環(huán)境變量的方法,通過修改JAVA_HOME、CATALINA_HOME和MAVEN_HOME等環(huán)境變量,可以實(shí)現(xiàn)不同版本JDK、Tomcat和Maven的切換2026-04-04
在Map中實(shí)現(xiàn)key唯一不重復(fù)操作
這篇文章主要介紹了在Map中實(shí)現(xiàn)key唯一不重復(fù)操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java?MapStruct優(yōu)雅地實(shí)現(xiàn)對象轉(zhuǎn)換
MapSturct?是一個(gè)生成類型安全,高性能且無依賴的?JavaBean?映射代碼的注解處理器,用它可以輕松實(shí)現(xiàn)對象轉(zhuǎn)換,下面就來和大家聊聊具體操作吧2023-06-06
java算法之Math.random()隨機(jī)概率玩法實(shí)例演示
最近打算整理排序算法,發(fā)現(xiàn)很有必要準(zhǔn)備一下生成隨機(jī)數(shù)的工具類,下面這篇文章主要給大家介紹了關(guān)于java算法之Math.random()隨機(jī)概率玩法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
Java錯誤:進(jìn)行語法分析時(shí)已到達(dá)文件結(jié)尾的解決
這篇文章主要介紹了Java錯誤:進(jìn)行語法分析時(shí)已到達(dá)文件結(jié)尾的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
SpringTask實(shí)現(xiàn)定時(shí)任務(wù)方法講解
通過重寫Schedu lingConfigurer方法實(shí)現(xiàn)對定時(shí)任務(wù)的操作,單次執(zhí)行、停止、啟動三個(gè)主要的基本功能,動態(tài)的從數(shù)據(jù)庫中獲取配置的定時(shí)任務(wù)cron信息,通過反射的方式靈活定位到具體的類與方法中2023-02-02
springboot配置mysql數(shù)據(jù)庫spring.datasource.url報(bào)錯的解決
這篇文章主要介紹了springboot配置mysql數(shù)據(jù)庫spring.datasource.url報(bào)錯的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01

