解決Maven項目使用Tomcat部署在idea上可以運行,但部署在linux上頁面無法打開,報404

最近再練習SpringMVC,用Maven進行構建,idea上一直可以使用Tomcat正常調試,項目寫完準備部署到linux雲服務器上看看效果,Maven項目BUILD SUCCESS,Tomcat也顯示Tomcat started.,打開webapps下面的項目目錄也有index.jsp文件,但瀏覽器上加載頁面顯示404。

因爲webapps下面的項目目錄也有index.jsp文件,Tomcat自帶的例子可以打開,因此初步排除Tomcat的問題,判斷是Maven編譯問題。對比idea生成的target文件夾和雲服務器上生成的target文件夾,發現classes中applicationContext.xml文件並沒有成功加載,Tomcat日誌中也顯示class path resource [applicationContext.xml] cannot be opened because it does not exist

項目的applicationContext.xml位於src/main/resources
在這裏插入圖片描述

idea會默認將src/main/resources目錄下的xml資源文件進行打包,所以在idea中無需特殊說明就可以直接加載,但在linux環境下需要在pom.xml中加入如下代碼:

  <build>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*</include>
        </includes>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

該代碼表示將resource下的所有文件打包進WAR包中。
再次編譯運行就可以正常打開頁面了。

問題是這樣解決的,但不知我的理解是否正確,如理解有問題請評論留言指出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章