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

參考資料:web

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

        https://blog.csdn.net/pz641/article/details/85029431瀏覽器

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

由於一些特殊須要,要將springboot 項目由jar包改成war包發佈,記錄實現的過程和出現的問題:springboot

  1. 首先,將pom.xml中打包配置改爲war網絡

     

2. springboot中自帶tomcat,打jar包會用這個tomcat啓動,咱們須要打包的時候排除這個自帶的tomcat,有兩種方式(如下圖片來自網絡(本身實在不想截圖了..))app

    方式一:eclipse

           

 

 

 方式二:  建議使用webapp

                 

 

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

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就好了

相關文章
相關標籤/搜索