2011-08-22 39 views
1

Jetty無法解壓我的Wicket應用程序戰爭並解壓到臨時目錄。它可以毫無問題地解壓縮示例戰爭。 我在使用Jetty 6.1.16和64位Java 1.6的64位Linux(Centos)上有兩個相同的安裝。一個人可以工作,一個人不能解除/解壓戰爭並部署它。我使用1.5兼容性進行編譯。我使用maven來生成戰爭文件。如果我部署.war,則會出現一般錯誤 - 無法解壓縮。如果我將Web應用程序解鎖爲文件系統並將其部署到Jetty,則可以正常工作。在碼頭上解決戰爭問題6

爲了確保它不是一個權限問題,我將它作爲root運行,但沒有看到任何區別。

實際上,當解壓縮爲需要提取的戰爭時,我實際上得到了NoClassDefFound錯誤。

我可以問碼頭不能提取戰爭,但是當我做我得到另一個錯誤......

org.apache.wicket.WicketRuntimeException:無法加載初始化文件

造成的:JAVA .util.zip.ZipException:打開zip文件時出錯

部署目錄在輸出中列出,但是當我查看它時,它是空的。奇怪的事情是與Jetty提取自帶的示例性戰爭,運行得很好沒有錯誤,所以它似乎是關於戰爭文件在我的最終創建(在32位Vista上使用eclipse/maven創建的戰爭)的方式。但是,再次,它在另一個幾乎完全相同的服務器上工作得很好,這很不可能。

希望有人有一個準備好的答案,然後我把它撕下來,重新安裝一切:-)。

回答

0

聽起來像文件系統權限問題。你確定你運行Jetty的用戶有權寫入war被提取到的目錄嗎?

Jetty確定在哪裏解壓縮Web應用程序的算法可能會選擇bunch of directories。您應該也可以理智地檢查在該算法中起作用的變量,並確保運行Jetty的用戶對這些目錄具有足夠的讀/寫權限。