2012-11-24 32 views
1

我有一個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」文件夾。這可以讓事情仍然像平常一樣編譯,但是當你部署你的項目時,所有的類都沒有問題。

所以這真的是一個應用程序引擎問題,應該在它下面標記它。

謝謝!

+0

你可以指定你的項目如何用ant或maven設置eclipse/GPE嗎? – SSR

+0

好吧,只需更新一下我的設置便箋。 – user291701

+0

您可能選擇引用舊項目,但未在源路徑中包含舊項目。 – texasbruce

回答

0

在對此進行了更多的研究之後,似乎我們無法添加項目引用並獲得服務器端類在部署的頂級項目中遇到的問題。相反,我鏈接到SomeSupportProject中的「src」文件夾。這可以讓事情仍然像平常一樣編譯,但是當你部署你的項目時,所有的類都沒有問題。

所以這真的是一個應用程序引擎問題,應該在它下面標記它。

謝謝!

相關問題