SpringBoot項目打包成war包并部署在tomcat上運行的操作步驟
項目場景:
正常情況下,我們開發(fā) SpringBoot 項目,由于內(nèi)置了Tomcat,所以項目可以直接啟動,部署到服務(wù)器的時候,直接打成 jar 包,就可以運行了。
有時我們會需要打包成 war 包,放入外置的 Tomcat 中進行運行,或者使用工具idea直接啟動,便于開發(fā)調(diào)試。
實現(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,否則后面就會出問題,tomcat無法解析jsp --> <scope>provided</scope> </dependency>
4、 繼承 SpringBootServletInitializer 并重寫 configure 方法
新建文件文件名隨意,或者直接修改啟動類繼承 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啟動
1、利用maven命令打包
2、 將打的war包,復(fù)制粘貼到tomcat的webapps目錄下(不用解壓,啟動tomcat自動解壓)
3、啟動tomcat
在tomcat安裝目錄下的bin目錄下面找到startup.bat命令,啟動tomcat
4、啟動結(jié)果
war包自動解壓了
5、 測試結(jié)果,訪問swagger頁面:
訪問路徑這里需要注意,原來我們在application.properties配置的訪問路徑已經(jīng)不生效了。
這是原來訪問路徑:http://localhost:8080/testservice/swagger-ui.html
#已經(jīng)不生效了
server.servlet.context-path=/testservice
現(xiàn)在的訪問路徑:
http://localhost:[端口號]/[打包項目名]/
比如我現(xiàn)在的訪問路徑就是:
http://localhost:8080/spring-boot-test-war/swagger-ui.html
spring-boot-test-war是我打包后的項目名,這個可以改的。
方式二:使用工具idea直接啟動
1、配置web.xml文件
點擊File->Project Structure
創(chuàng)建src/main/webapp和web.xml
此時項目結(jié)構(gòu)圖如下:
2、配置artifacts
配置完后,tomcat啟動才能找到這個war包,會生成out目錄輸出文件。
當(dāng)然你也可以選擇target下面已經(jīng)打包好的war包,但是這樣有個缺點,就是每次改文件你都需要用maven重新打包,輸出到target目錄下,不方便開發(fā)。
3、配置tomcat
在IDEA右上角的項目運行列表中選中 Edit Configurations
進入新的窗口點擊"+",找到Toncat Server中的Local進行點擊,配置Tomcat路徑
4、tomcat 選擇啟動的war包
這里注意選擇exploded結(jié)尾的,才是out目錄輸出的
Application context上下文配置訪問路徑
訪問路徑這里需要注意,原來我們在application.properties配置的訪問路徑已經(jīng)不生效了。
#已經(jīng)不生效了 server.servlet.context-path=/testservice
現(xiàn)在的訪問路徑:
http://localhost:8080/testservice/swagger-ui.html
testservice是我Application context上下文配置的訪問路徑 ,這個可以改的。
5、配置tomcat啟動默認打開的頁面
6、啟動結(jié)果
點擊啟動
到此這篇關(guān)于SpringBoot項目打包成war包并部署在tomcat上運行的操作步驟的文章就介紹到這了,更多相關(guān)SpringBoot打包成war包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java數(shù)組的定義、初始化、及二維數(shù)組用法分析
這篇文章主要介紹了Java數(shù)組的定義、初始化、及二維數(shù)組用法,結(jié)合具體實例形式分析了java數(shù)組概念、功能、數(shù)組定義、靜態(tài)數(shù)組、動態(tài)數(shù)組、二維數(shù)組等相關(guān)使用技巧,需要的朋友可以參考下2019-01-01Java基礎(chǔ)之隱式轉(zhuǎn)換vs強制轉(zhuǎn)換
這篇文章主要介紹了Java基礎(chǔ)之隱式轉(zhuǎn)換vs強制轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2015-12-12Java反射機制詳解_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細介紹了Java反射機制的相關(guān)資料,主要包括反射的概念、作用2017-06-06Java面試Logback打印日志如何獲取當(dāng)前方法名稱題解
這篇文章主要為大家介紹了Java面試Logback打印日志如何獲取當(dāng)前方法名稱題解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11