2013-07-05 119 views
1

我有一個非常有趣的問題。我正在運行maven來將我的Servlet站點編譯成一個WAR文件。這在我的本地機器上完全正常工作;甚至當我將部署設置更改爲僅使用war文件時,它也能正常工作。但是,當我將WAR文件部署到服務器時,出現404錯誤。我不是WAR文件的專家,那麼是否有某種內部文件可以指定我需要查看的資源的位置?編譯爲WAR時缺少文件

+0

由於戰爭問題是一個檔案,可能需要訪問資源和[tag:embedded-resource]。 –

+0

你能對404錯誤更具體嗎?什麼是導致他們的例外? – benjiman

+0

@benjiman它在Chrome中,所以我看到的是當我將WAR文件部署到外部服務器時找不到文件。我剛剛通過WAR文件進行了cd'd操作,可以看到那些文件。我缺少的文件是兩個JavaScript文件,這是非常奇怪的,因爲還有其他的JavaScript文件,他們得到加載罰款? – christopher

回答

0

首先嚐試解壓縮你的戰爭(戰爭,罐子,耳朵是zip文件),看看你的文件實際上存在,驗證您解壓戰爭包含:

  • 目錄WEB-INF
  • 文件WEB-INF/web.xml
  • dir WEB-INF/lib與您的應用程序相關的jar文件取決於
  • dir WEB-INF /帶* .class文件的類,其中您的servlet和相關類應該是(if你已經決定讓它們在那裏,而不是在WEB-INF/lib的jar裏)
  • 在根目錄

靜態資源你可以讓你的什麼是你的戰爭中失蹤的結論。

你也可以嘗試手動建立自己的戰爭(創建與我上面提到的結構的zip文件,將其改名爲*的.war)如果你有你的IDE的選項做