首頁 > 軟體

springboot打war包部署到外接tomcat容器的方法

2022-04-19 10:01:22

打war包部署到外接tomcat容器

一、修改打包方式

<packaging>war</packaging>

將上面的程式碼加入到pom.xml檔案剛開始的位置,如下:

二、 排除內建tomcat的依賴

我們使用外接的tomcat,自然要將內建的嵌入式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實現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/目錄下執行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靜態資源參照也必須是:/boot-launch/image/xxxx.png,不能是/image/xxxx.png
  • JSP的war包中,webjars的資源使用方式不再被支援

到此這篇關於springboot打war包部署到外接tomcat容器的文章就介紹到這了,更多相關springboot]打war包部署tomcat容器內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com