2013-03-27 176 views
0

我正在使用GWT和GAE在Eclipse Juno上開發一個項目。Google App Engine上的NoClassDefFoundError

我原來的項目在同一個項目上有所有的包和類,它在開發模式和上傳到Google App Engine上的時候都能正常工作。

然後,我創建了另一個項目(在同一個工作區),我移動了通用類,以便可以在其他項目上使用它們。我還沒有創建一個Jar文件。我一定要嗎?我希望我可以將我的泛型類保留在另一個項目上,而不必將它們放在jar文件中。

過了一段時間,我可以在兩個項目上創建正確的XXX.gwt.xml文件,並將新項目添加到主項目屬性(項目>>屬性>>項目)的「項目」選項卡中,以使移動對主項目可見的類。 GWT編譯器找到那些移動的類,將它們翻譯成Javascript代碼,主項目能夠在客戶端執行它們。

我的問題是在服務器端。無論我嘗試什麼,服務器部分都找不到移動的類,並且在嘗試執行其中的任何一個時,它會在開發模式下運行時出現「NoClassDefFoundError」錯誤(我還沒有嘗試上傳到Internet上的Google App Engine然而)。 如果我在服務器端註釋掉所有對這些類的引用,則錯誤不會顯示出來,但我當然沒有它們的功能。

加斯頓塞龍

+0

您不必製作JAR,但必須以某種方式將該代碼上傳到AppEngine。最簡單的是您複製到WEB-INF/lib的JAR。 – Thilo 2013-03-27 04:17:23

+0

謝謝,我懷疑我最終需要jar文件。 – gastonceron 2013-03-27 06:37:50

回答

0

是的,你必須創建第二個項目的罐子,並把它放在WEB-INF/lib文件夾。

如果您可以使用maven或ant,您可以設置appengine來將另一個項目編譯爲jar,並將其用作app引擎項目的依賴項。

+1

謝謝,我對Java不太瞭解,而且我試圖避免生成Jar文件。現在我知道更好。 – gastonceron 2013-03-27 06:41:13