注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

obsolete

wanna go

 
 
 

日志

 
 

java 远程调试 Tomcat配置远程调试  

2012-04-06 11:14:17|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/index.html

相 信做过Java Web项目的朋友都非常熟悉MyEclipse(汗,有不知道的?),集成Tomcat一点deploy按钮,直接发布成功,再一个start就可以欣赏 自己的大做了。可有些项目或者公司不允许使用MyEclipse(收费的,呵呵),所以部署打包的事完全交给了Ant或者Maven来做,但这两兄弟都得 在命令行下来做,对于被MyEclipse惯坏的我来说,用着简直是痛苦之极,就拿Ant来说,往往要做如下几步:

 
1.进入工程目录,运行Ant命令编译;
2.生成Eclipse工程所需的文件(.classpath和.project等);
3.antexpand发布编译生成的war包;
4.从外面启动Tomcat(某些工程并非标准JavaEE工程,无法直接在Server视图下集成服务器);
5.访问自己的成果,汗,此时如不做特殊设置,效果是看到了,可是调试呢?
 
带着问题学习了下远程调试总结如下:
在做远程调试时,在windows系统和非windows系统下的配置,Tomcat中会有所差别,具体如下:

第一步、配置tomcat
一、在windows系统中:
打开%CATALINE_HOME%/bin下的文件catalina.bat,加入下面这行:
set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=
 8000

其中
 address=
8000是没被使用的端口号。连接方式有两种,为dt_shmem和dt_socket,分别表示本机调试和远程调试。

二、在非windows系统中:
还 需要把% CATALINE_HOME %/bin/startup.sh中的最后一行exec "$PRGDIR"/"$EXECUTABLE" start "$@" 中的start改成jpda start。由于默认的端口是8000,所以如果8000端口已有他用的话,还需在catalina.sh文件中设 置:JPDA_ADDRESS=8000。
输入命令startup.sh或者catalina.sh jpda start就可启动tomcat。

第二步、配置eclipse
在Eclipse中选择Run Debug,在弹出对话框中右击Remote Java Application新建一个远程调试项,如下所示:
 
 远程调试视图

在 “Name”输入框中输入远程调试的名称,在“Project”中选择要调试的项目,在“Host”中输入需要远程调试项目的IP,也就是tomcat所 在的IP,在“Port”中输入设置的端口号,比如上面设置的8000,然后钩选“Allow termination of remote VM”,点击“Apply”即可。
设置完后就可以开始调试了,大概分一下几步:
1、启动tomcat(远程),如在控制台输出“Listening for transport dt_socket at address: 8000”,即说明在tomcat中设置成功;
2、在本机设置断点;
3、进入上图界面,选择要调试的项,点击“Debug”即可进行远程调试;
4、访问你的测试页面即可看到久违的调试界面。
但每次做上述操作非常烦,不如写个批处理,如取名为Tomcat debug.bat,在这个文件中加入下面几行:

cd %CATALINE_HOME%/bin
set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket
set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787
startup
将此脚本保存到tomcat/bin目录下,然后发个快捷方式在桌面,欧啦~~~~
这样需要远程调试时,运行debug.bat即可;不需要远程调试时,还是运行startup.bat文件


Tomcat中设置远程调试设置

http://blog.chinaunix.net/u/21344/showart_498246.html

 在tomcat/bin/的catalina.bat文件中加入下面的设置,当然SET CATALINA_OPTS 变量应该在使用它之前。这是在tomcat启动时设置一些虚拟机参数,使服务器允许远程连接功能,address=5888表示远程连接的端口号,可以设置成任意其他不冲突端口。其他的应用服务器比如weblogic也应该可以设置这些参数,有兴趣的可以测试。

    SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888


这样就Ok了,重启动tomcat,可以直接独立启动,而不用在eclipes的插件中启动。打开eclipse中的debug设置窗口,选择Remote Java Application ,新建一个debug项,输入服务器IP和刚才设置端口号,点ok就可以进入debug状态了。
不过要注意在Linux下,有一点点差异,是要编辑catalina.sh文件。

     而且要改成这样:

     CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888"

     也就是把SET去掉,后面加双引号引起来,因为在Linux下,是没有SET这个语法的。


在linux下出现错误时
ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.

将-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n 去掉。


  评论这张
 
阅读(10617)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018