2010-04-09 36 views
1

我正在開發一個使用EJB和其他Java EE 6技術作爲後端的GWT應用程序。我目前正在使用Safari的GWT 2.0插件。在GWT開發中刷新後端

當我改變我的GWT客戶端代碼,並保存在我的IDE(NetBeans的),所有的需要的是在瀏覽器中的更改生效,一個簡單的重裝。這很好!

但是,我常常在服務器端(EJB組件,GWT服務器代碼等),然後在東西在GWT客戶端工作。對服務器端所做的任何更改似乎都不會增量部署到Glassfish V3服務器。目前,我關閉了GWT開發模式應用程序,然後重新編譯這些EJB,然後再回到GWT開發模式。那很乏味。

有沒有更好的方法來做到這一點?我在NetBeans中嘗試了「在保存時部署」選項,但似乎沒有辦法。

回答

1

關鍵是要創建一個展開的EAR目錄(而不是EAR文件)和部署在應用服務器。它適用於JBoss和Weblogic,並且應該在glassfish中工作,但還沒有嘗試過。

這個想法是,你根本不使用任何檔案。在您的war目錄中,創建一個WEB-INF/classes文件夾,並將您的IDE配置爲在此目錄中寫入類文件。這樣,當您在IDE中更改java文件時,它將寫入您的classes目錄,JVM將熱部署您的類。

這種方法有一些限制。如果您更改方法簽名或添加類或新方法,JVM將無法將其提取出來。在這種情況下,觸摸 web.xml重新部署WAR。這本身就是重新啓動整個應用程序服務器的改進。

這需要一兩個小時,以獲得正確的設置,但在那之後,你一定會喜歡它。

+0

謝謝,會試試這個! – 2010-04-09 18:12:42