我有一個GWT的項目,我想用一些類服務器端從另一個項目:從服務器端的引用項目中使用java類?
MyServerProject
com.me.myserverproject.server.Horse
SomeSupportProject
com.me.somesupportproject.server.Animal
和MyServerProject Horse.java樣子:
class Horse extends Animal {
}
在Eclipse中,我有MyServerProject引用SomeSupportProject項目。所有編譯好,GWT編譯運行良好,沒有錯誤。
當我部署MyServerProject到本地實例,它立即拋出的「Animal.java」一個NoClassDefFoundError的錯誤:
java.lang.NoClassDefFoundError: com/me/somesupportproject/server/Animal
at java.lang.ClassLoader.defineClass1(Native Method)
標誌着我SomeSupportProject在Eclipse項目性質導出。但似乎Animal.java的類文件在部署時沒有被導出。我們是否需要在這裏做一些特殊的事情才能讓它起作用?
我必須錯過一些非常明顯的事情,因爲這是非常基本的東西。我有客戶端的Java文件被引用就好了,我認爲這是更棘手的情況。但是,這些都是服務器端類,認爲這將是簡單的,
感謝
-------更新:項目設置---------------
在我的環境中的一些注意事項:
使用Eclipse,而這兩個項目並排。我沒有使用Ant或Maven。我有eclipse設置自動生成,所以沒有得到任何編譯錯誤。爲了實際編譯部署,我嘗試了右鍵單擊「MyServerProject」,選擇Google - > GWT編譯。我將輸出設置爲「全部」。我沒有收到任何編譯錯誤。輸出沒有提及任何警告。
GWT編譯完成後,我再次右鍵單擊該項目,選擇運行方式 - > Web應用程序。這就是拋出SomeSupportProject項目中找到的類的java.lang.NoClassDefFoundError。
如果有任何具體細節可以幫助我知道。
---------最後更新:解決-----------------
這方面的工作多一些後,似乎我們才能在部署的頂級項目中添加項目引用並獲取服務器端類。相反,我鏈接到SomeSupportProject中的「src」文件夾。這可以讓事情仍然像平常一樣編譯,但是當你部署你的項目時,所有的類都沒有問題。
所以這真的是一個應用程序引擎問題,應該在它下面標記它。
謝謝!
你可以指定你的項目如何用ant或maven設置eclipse/GPE嗎? – SSR
好吧,只需更新一下我的設置便箋。 – user291701
您可能選擇引用舊項目,但未在源路徑中包含舊項目。 – texasbruce