2011-04-25 74 views
4

歐凱所以這是目前的工作如何IM:在開發模式中使用GlassFish + GWT

  1. 即時通訊使用了使用GWT我的視覺層
  2. 我的服務層
  3. 林的EJB(3.X)林交際GWT與debendency注射(@EJB批註)

的EJB所以問題是,即時通訊沃金有點慢,因爲每當我做一個小的變化,以我的GWT層我必須編譯至極需要一些時間。 我想知道是否有一種方法在生產模式下使用Glassfish + GWT + EJB

回答

1

要使其工作,您應該做以下事情: 1.僅在Glassfish上部署ejb(用於開發模式)。當您希望Web部件處於開發模式時,建立完整的耳朵是沒有意義的。 2.使用遠程接口(我們使用服務定位器來檢測它是否應該在EJB的本地或遠程接口上工作)。 3.將gf-client.jar添加到GWT開發模式的引導條目中(從eclipse啓動時)。 4.將ejb客戶機jar添加到GWT dev模式的類路徑條目中。

像這樣的設置可以節省您在GWT網站上更改某些內容時耗時的重新編譯(您只需點擊重新加載按鈕並使用新代碼)。當你在ejb方面改變某些東西時,你仍然需要關閉開發模式,重新部署ejb並再次啓動開發模式,以使其工作。

這不是非常簡單的設置,但它的工作原理。我們使用maven配置文件來生成ejb只用於開發的版本和完整的生產版本。

還有一種noserver模式會稍微簡單一點(它將連接到部署在glassfish上的web部件,而不是jetty),但效率較低,因爲GWT RPC端的每個更改都需要耗時的重新編譯和重新部署戰爭(或全耳)。

+0

感謝您的意見I'會嘗試一下,看看它是否工作流程對我來說 – fernandohur 2011-04-26 18:16:57

+0

好的我不太瞭解第3步。我在哪裏可以找到gf-client.jar?以及什麼是bootstrap entires?它是WEB-INF嗎?什麼是客戶端jar?對不起,如果這些問題是不好的,我還是有點新鮮 – fernandohur 2011-04-26 22:23:15

+0

gf-client.jar可以在/glassfish/lib目錄中找到。您應該修改開發模式的eclipse運行配置以包含此庫。 – jgrabowski 2011-04-26 23:30:44

0

在這種情況下,您不需要部署服務層。 您可以使用託管模式查看GWT端的更改。

http://code.google.com/eclipse/

與谷歌插件,你在Eclipse中運行,看到的變化只有刷新頁面。 Jetty是eclipse中的一個服務器,用於開發基於GWT的Web應用程序。

+0

林不知道你的意思,已經使用Eclipse插件 – fernandohur 2011-04-26 03:47:19

+0

抱歉,此回覆IM是一個快速發送POST :) jgrabowski解釋我的意思 – 2011-04-26 12:50:30