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专题发布

网站导航:博客园首页  我的主页  新闻  社区  博问  闪存  知识库

相关文章
相关标签/搜索