springBoot 項目war包部署及改為war包后資源路徑錯誤問題


參考資料:

        https://blog.csdn.net/rico_zhou/article/details/83415114

        https://blog.csdn.net/pz641/article/details/85029431

        https://blog.csdn.net/m0_37981898/article/details/82155912

因為一些特殊需要,要將springboot 項目由jar包改為war包發布,記錄實現的過程和出現的問題:

  1. 首先,將pom.xml中打包配置改成war

     

2. springboot中自帶tomcat,打jar包會用這個tomcat啟動,我們需要打包的時候排除這個自帶的tomcat,有兩種方式(以下圖片來自網絡(自己實在不想截圖了..))

    方式一:

           

 

 

 方式二:  建議使用

                 

 

3. 更改啟動類,繼承SpringBootServletInitializer ,覆蓋configure(),把啟動類Application注冊進去, 注意: 此類需要放在Application啟動類同級目錄

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

/**
 * springboot 項目打成war包訪問,初始化啟動Spring應用上下文
 * @author qxl
 *
 */
public class SpringBootStartApplication extends SpringBootServletInitializer {
    
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }

}

 

    4. 打war包發布,兩種方式

      方式一 :  執行:mvn clean package ,打包結束后即可在target文件夾中找到war包,或者在eclipse中右擊項目>Run as>Maven install打包結束同樣在target目錄下找到war

      方式二 :   idea 工具導出war包

  5. 部署到 tomcat, springBoot不同版本內置tomcat版本是不一樣的(下面的圖也是截的別人的),這里建議使用8.5以上版本

     

   將項目部署到tomcat后啟動,項目是可以啟動的,但是很多資源文件失效找不到了,原因是tomcat啟動項目,需要帶上項目名,之前jar包訪問資源路徑沒有項目名,導致資源路徑錯誤

   解決方案有兩種: (注意,以下兩種方式一定要刪除ROOT文件夾,否則會有問題)

    一 : 模擬Tomcat啟動頁面,替換 ROOT文件夾

          將webapps目錄下的ROOT文件夾刪除,將自己的war包更名為ROOT.war,重新啟動tomcat,瀏覽器中輸入localhost:8080即可訪問

         

   二 :  修改tomcat配置,不需要項目名訪問,還是需要先刪除ROOT文件夾

            修改conf目錄下server.xml

             

 

           修改host內容,將

                  <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> 

           改為 : 

               <Host name="localhost" appBase="" unpackWARs="true" autoDeploy="true">

               <Context docBase="webapps/你的項目名" path="" reloadable="true" source="org.eclipse.jst.jee.server:你的項目名"/>

          如下圖,改之前:

            

 

           改之后:(vrs為項目名稱)

               

                 修改好之后運行tomcat,可以不需要項目路徑訪問項目,也就是說訪問 http://localhost:8080就行了

 

        

   

 

     

 

 

 

 

 

        

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM