將springboot專案部署到tomcat中
一、打包方式
pom.xml中的packaging設定成war<packaging>war</packaging>
二、移除嵌入式的tomcat外掛
在pom檔案中找到spring-boot-starter-web依賴,更改依賴成:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat外掛 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 移除嵌入式tomcat外掛 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> |
三、新增servlet-api依賴
二選一即可: <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-servlet-api</artifactId> <version>8.0.36</version> <scope>provided</scope> </dependency> |
四、修改啟動類,並重寫初始化方法
我們平常用main方法啟動的方式,都有一個App的啟動類,程式碼如下: @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } 我們需要類似於web.xml的配置方式來啟動spring上下文了,在Application類的同級新增一個SpringBootStartApplication類,其程式碼如下: /** * 修改啟動類,繼承 SpringBootServletInitializer 並重寫 configure 方法 */ public class SpringBootStartApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意這裡要指向原先用main方法執行的Application啟動類 return builder.sources(Application.class); } } |
五、打包部署
在專案根目錄下(包含pom檔案的目錄),在命令列裡輸入:
mvn clean package即可,等待打包完成,出現[info] BUILD SUCCESS即為打包成功,然後把target目錄下的war包放到tomcat
的webapps目錄下,啟動tomcat,即可自動解壓部署。
最後在瀏覽器位址列輸入:http://localhost:[埠號]/[打包專案名]/
釋出成功。
linux中操作tomcat的常見命令:
向專案中更新檔案的步驟:
1.關閉Tomcat:
輸入命令:
/usr/tomcat/apache-tomcat-8.0.48/bin/shutdown.sh
2.檢查Tomcat是否關閉:
ps -ef |grep tomcat
3.如果出現如下資訊,表示沒有關閉
root 5499 1 15 10:10 pts/1 00:01:47 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/bin/java -Djava.util.logging.config.file=/usr/tomcat/apache-tomcat-8.0.48/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dignore.endorsed.dirs= -classpath /usr/tomcat/apache-tomcat-8.0.48/bin/bootstrap.jar:/usr/tomcat/apache-tomcat-8.0.48/bin/tomcat-juli.jar -Dcatalina.base=/usr/tomcat/apache-tomcat-8.0.48 -Dcatalina.home=/usr/tomcat/apache-tomcat-8.0.48 -Djava.io.tmpdir=/usr/tomcat/apache-tomcat-8.0.48/temp org.apache.catalina.startup.Bootstrap start
root 5609 5439 0 10:22 pts/1 00:00:00 grep --color=auto tomcat
4.如果沒有關閉,執行如下命令,關閉程序
kill -9 PID (PID為當前程序號,如本次的PID為:5499)
5.再次檢查Tomcat執行狀態:
ps -ef |grep tomcat
6.如果確實關閉了,可以更新自己的檔案了,
7.更新完畢,啟動Tomcat:
/usr/tomcat/apache-tomcat-8.0.48/bin/startup.sh
附:檢視日誌
tail -f /usr/tomcat/apache-tomcat-8.0.48/logs/catalina.out
附:測試本地訪問
輸入命令:
curl http://localhost:8080