最近再練習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包中。
再次編譯運行就可以正常打開頁面了。
問題是這樣解決的,但不知我的理解是否正確,如理解有問題請評論留言指出。