Eclipse Jetty GWT 同時調試多個項目的配置方法

  閱讀: 43 評論: 2 做者: blackcore 發表於 2009-11-30 10:05 原文連接javascript

 

GWT應用程序有兩種方式運行:html

Hosted Modeljava

     在Hosted Model方式下,Java程序並不會被編譯成JavaScript,GWT只是創造了一個相似web

     瀏覽器的環境,直接運行使用GWT開發的程序。這種模式最具生產力(這種模式下能夠Debug全部的Java代碼),windows

     因此開發環境一般使用Hosted Model,可是真正的程序執行不使用這種模式。瀏覽器

Web Model服務器

     就是將使用GWT編寫的Java程序整整編譯成JavaScript,在Web容器上運行,使用瀏覽器app

     訪問的模式,這種方式只有在測試或者運行的時候才使用,每次對Java類的修改必須從新編譯frontend

     這些Java類,以後從新部署應用。因此生產力比較低。eclipse

 

這裏沒寫完.......

2009.12.08

 

由於項目較大,項目組將項目的先後臺分給了兩個團隊負責。
後臺主要用了hibernate持久化,前臺主要用Gwt的Widget實現頁面的佈局,中間用Json進行數據交互!
因爲在後臺代碼中,都有單獨的testcase,前臺也有testcase,兩個團隊都是互不影響的,因此也沒有將兩個項目
整合調試。由於如今須要整合調試,因此就把先後臺都放在一個工做區了,但如何debug卻搞了一段時間,現總算
搞定了。
前臺項目:***-frontend;後臺項目:***-backend。
 

在這裏,咱們用了ant build了一個war吧,其中在先後臺的兩個build.xml文件中,分別將後臺項目生成爲***_backend.war,前臺項目生成爲***.war包。這樣完成之後,咱們就須要對先後的debug方式進行相關配置,而後再對jetty服務器進行配置。其中須要注意的時,後臺項目咱們用jetty debug的方式來作,前臺則用Gwt hosted mode來進行Debug,基本做法以下:
首先個人jetty_version的端口號是10000,能夠在jetty_version\etc\jetty.xml中設置其port的默認端口號。
其次jetty啓動時用-Xdebug -Xrunjdwp:transport=dt_socket,address=8080來啓動,這個8080端口主要用於監聽後臺的debug商品
再次要將前臺啓動的端口設置成10000,這樣就能夠調試了。

詳細作法以下:
假如個人jetty位置在:F:\Setupfiles\JavaPlatform\jetty_6.1.22
前臺項目名稱爲:***_frontend;後臺項目名稱爲:***_backend。
要注意把***_backend.war和***.war包都放入F:\Setupfiles\JavaPlatform\jetty_6.1.22\webapps\下。按常理也許很難理解,由於咱們已經都編譯成包了,雖然在eclipse中已經改過代碼了,但咱們調試時倒是如今eclipse的代碼,而不是***.war包的代碼。。。這裏牽涉到了GWT編譯代碼一些知識。

1. 右擊***_backend --> Debug As --> Debug Configurations...,而後就會以下界面,按照以下設置: 
注意Connection Properties及其Connection Typeg兩個屬性的設置。

2. 啓動Jetty,jetty的啓動參數要求有-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888
 則完整的啓動命令是:java -Xms256M -Xmx1024M -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 -jar start.jar
 在這裏能夠將命令保存爲一個jettyStart.bat文件,以便使用,如:
 @echo off
 echo 正在啓動jetty,請稍等......

 f:
 cd F:\Setupfiles\JavaPlatform\jetty_6.1.22
 java -Xms256M -Xmx1024M -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 -jar start.jar

 echo 啓動完成
 echo. & pause
 單擊jettyStart.bat啓動jetty便可,如  
 在Eclipse中右擊***_backend --> Debug As --> Debug Configurations...打開對話框後單擊"debug"按鈕,在Eclipse中的Debug界面就有以下:  
 能夠看到8888端口已經啓動,***_backend的全部線程都在裏面了。。。

3. 在以上已經完成了後臺的高度工做,接下來將處理前臺的調試。前臺主要用GWT Hosted Mode進行調試,在Eclipse中右擊***_frontend --> Debug As --> Debug Configurations...界面以下:  
 要求將Run built-in server的複選框的勾去掉,而後再設置GWT標籤的內容,以下:
  
 設置其URL便可,端口號10000爲jetty的默認端口號,其中在output style選擇Obfuscated便可,這裏主要是輸出調試信息,由於GWT編譯JAVA代碼後會生javascript代碼,選擇obfuscated輸出的信息就是亂碼,而 detailed就是可讀的javascript代碼.
 
 4.在以上界面設置完成後,點擊"Debug"按鈕後,咱們就能夠見到以下界面,輸入用戶名和密碼後
  
 單擊"Login"按鈕後,咱們就能夠跟蹤在後臺的斷點,如:
  
 

咱們按F8後,而後就會進入前臺的斷點,如:
   

在GWT Hosted Mode中,咱們也能夠看到詳細的Log信息,如:  
 以上配置基本就完成了。
 要說明的是:
 兩個war包必定要放在jetty/webapps/中,如
  
 

能夠在eclipse中直接改代碼,雖然看起來咱們已經把war包扔到jetty中了,但調試時確定是最新修改代碼。
 GWT的項目在編譯後都會生成javascript,但咱們仍是隻要求關心咱們的.java代碼就OK,至於GWT如何去編譯成javascript代碼,如何把java代碼與javascript代碼相對 應。
 以下即是GWT編譯後的javascript代碼:   
  
 要注意的是java的一個method與javascript中的function不是1:1關係。
 
 另外介紹在配置過程當中用到的幾個工具
 1. hardlink工具(至關於快捷方式)
  

Junction,若是在CMD找不到此命令,請到MS上下載放入win32目錄下就OK。
 
 2. 抓包工具Fiddler2,能夠抓到本機的經過http等端口的傳入/出數據包,但ftp的不會。
  啓動界面
 主界面以下: 

 

 

  發表評論


新聞頻道:"小黑"終結? 傳聯想將推紅色ThinkPad

推薦連接:Windows 7專題發佈

網站導航:博客園首頁  我的主頁  新聞  社區  博問  閃存  知識庫

相關文章
相關標籤/搜索