1. 程式人生 > >將springboot專案部署到tomcat中

將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