用eclipse如何远程debug部署在tomcat上的应用

第一篇文章。原文:http://blog.sina.com.cn/s/blog_50197c290100gbop.html


一直想分享一下,因为有些同事用MyEclipse其实就是因为可以拿它来debug部署在tomcat上的应用。

myeclipse只不过是作了两个小动作:

1)用启用JPDA参数的模式启动了tomcat,以提供debug支持;

2)启动了一个Eclipse的RemoteJavaApplication;

 

这些通过tomcat和eclipse就可以做到。我简要说明一下。

配置tomcat的JPDA参数:

如果Tomcat使用的是JDK 1.5以上版本,那么JPDA可以使用JVMDI,配置方法为:

在tomcat的bin/catalina.bat文件中一开始加入:
set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=localhost:8000

如果是Mac OS X或是Linux,则在bin/catalina.sh文件中一开始加入:
export JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=localhost:8000
其中address中的端口不一定非用8000哦,也可以换成其他端口。

如果使用的是JDK 1.4,那么只能使用JVMPI了,见后面的说明。
实际debug:

配置好JPDA参数后,按以下顺序即可debug了:
1)先以Debug模式启动tomcat;

即:在命令行下,进入tomcat的bin目录,执行catalina jpda start(会打开新窗口)或者catalina jpda run命令(在当前窗口,和catalina run类似);
2)再在eclipse中运行相应的Remote Java Application;

第一次运行时,需要先建立这个Remote Java Application. 方法为打开"Debug"->"Open Debug Dialog",新建一个Remote Java Application, 给个合适的名字,Connection Type选择"Standard(Socket Attach)", Host和端口指定为localhost:8000(和上面tomcat中配置的端口一致),如下图示:

3)根据需要在java/jsp中设置断点,跟踪调试了;(和您熟悉的MyEclipse下一样)



另一篇文章:http://avar.iteye.com/blog/163767 



在做远程调试时,在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=8787

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

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

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



在“Name”输入框中输入远程调试的名称,在“Project”中选择要调试的项目,在“Host”中输入需要远程调试项目的IP,也就是tomcat所在的IP,在“Port”中输入设置的端口号,比如上面设置的8787,然后钩选“Allow termination of remote VM”,点击“Apply”即可。
设置完后就可以开始调试了,大概分一下几步:
1、启动tomcat(远程),如在控制台输出“Listening for transport dt_socket at address: 8787”,即说明在tomcat中设置成功;
2、在本机设置断点,即在需要监视的代码行前双击就会出现一个小圆点;
3、进入上图界面,选择要调试的项,点击“Debug”即可进行远程调试;
4、当运行到设置了断点的代码行处即可看到如下图所示的浅绿条。


按键操作:
1、F5键与F6键均为单步调试,F5是进入本行代码中执行,F6是执行本行代码,跳到下一行;
2、F7是跳出函数;
3、F8是执行到最后。


当然,为了方便,可以新建一个批处理文件,假如取名为debug.bat,在这个文件中加入下面几行:

cd %CATALINE_HOME%/bin
set JPDA_ADDRESS=8787
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

这样需要远程调试时,运行debug.bat即可;不需要远程调试时,还是运行startup.bat文件。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值