2012-09-08 36 views
0

所以我有這個(有點)奇怪的想法 - 有正在開發的系統正在通過各種服務與外部世界進行通信,但它完全是服務器端並部署作爲單一的戰爭。我想寫一個基本的用戶界面(開發/調試級,不打算用於生產)。主要目標:服務器端測試案例,同時gwt開發模式運行

  • 避免調用系統服務,而不是直接調用java的方法的對象
  • 使用GWT
  • 必須同時從測試的情況下(TestNG的)和Tomcat上部署戰工作(最好都在開發和生產GWT模式)
  • 保持獨立,限制對系統的更改

所以...如何使用GWT做到這一點? 當部署到tomcat時,我會把兩者都放在同一場戰爭中。 (因爲不同的戰爭有不同的類加載器)。當運行測試用例(集成,他們使用db和所有東西)時,我會在初始化過程中啓動嵌入式jetty並註冊新的gwt servlet。

好的,這聽起來很可靠。但是,開發模式呢?我希望能夠啓動常規開發模式,這將允許

  • 修改UI代碼(這顯然做),並
  • 修改服務器端代碼(我通常會用JRebel的實現) - 但在這種情況下如何運行測試用例?我不會肯定地重寫它們。

跌落理念來經營UI,並在同一JVM中的系統將幫助並允許很好的分離,而且還會迫使我寫一些沒有意義的RPC/RMI /什麼東西。

關於如何解決這個問題的任何見解?

順便說一句 - 這只是一個非工作時間項目,所以我非常歡迎這樣瘋狂的我永遠不會做的真正系統的想法。

回答

0

在單獨的JVM中運行後端(Tomcat,Jetty等)和前端(GWT開發模式)工作得很好。這實際上現在或多或少是推薦的方法(特別是如果你想在某個時候使用SuperDevMode)。

下面是使用eclipse我的發展戰略:

  1. 使用WTP和Jetty在調試模式下啓動的後端服務器(JRebel的用於熱交換班時,我改變了後端的東西)。
  2. 啓動GWT開發模式
  3. 打開GWT應用程序在瀏覽器

當我改變的GWT部分,我只需要刷新瀏覽器的東西,我看到在UI的改變這種方式。
JRebel負責後端部分的所有更改。

前端和後端之間的通信與在生產模式下執行的方式相同(RequestFactoryRPCRequestBuilder)。

相關問題