2012-03-27 167 views
0

我有一個GWT模塊,其包括我希望在小服務程序和客戶端訪問幾個DTO的。而在Eclipse中開發,我該模塊一個單獨的項目與GWT XML:「共享」 GWT模塊

<module rename-to='commonmodels'> 
    <source path="models"/> 
    </module> 

我有另一個GWT項目,該項目包含UI,以及servlet代碼。我包括(使用構建路徑 - >項目 - >添加)的commonmodels項目,包括模塊包括聲明我的主要項目:

<inherits name="com.techflow.bcweb.common.CommonModels" /> 

然後,我讓一個RPC調用它創建了一個對象(其具有同級車在CommonModels中定義)並將其返回給客戶端。

這一切似乎工作,GWT託管模式,但是當我運行它的戰爭和服務器上部署它,它拋出一個異常ClassDefNotFound。我檢查了戰爭並確認了包含模塊中的.class文件不存在。我的問題是 - 我如何告訴GWT編譯器不僅要將包含的模塊的類編譯爲javascript,還要讓這些類可以被servlet訪問?我知道在GWT項目中,您可以創建一個「共享」文件夾,使其類可以訪問客戶端和servlet。有沒有辦法獨立模塊爲「共享」,在紀念類,使繼承它可以訪問兩個客戶端和servlet的類任何GWT模塊?

在此先感謝您的幫助!

+0

你的問題不是與GWT有關。您沒有足夠寫關於如何構建應用程序或將其部署到服務器的問題。 – mabn 2012-03-29 03:15:39

回答

0

當你部署你的主要項目到服務器,該項目甚至不知道你的另一項目存在! Eclipse「Project >> Add」只在Eclipse中運行項目時才起作用。爲了解決這個問題,你只需要創建一個包含commonmodels二進制的JAR文件,然後將其添加到您的主項目的類bin文件夾:

war/WEB-INF/lib/ 

除非你使用Maven的...然後只需安裝項目到您的資源庫中,並在您的pom.xml文件中添加一個依賴項。

+0

感謝Renato的回覆。我想找到一個更方便的方法來做到這一點,而不必做一個罐子,但似乎這是標準方法。我試了一下,效果很好。 – Fangbot 2012-03-28 01:35:06

+0

我知道的唯一方法就是使用Maven。 – Renato 2012-03-28 03:22:43