ref: http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/index.html

 

在做远程调试时,在windows系统和非windows系统下的配置,Tomcat中会有所差别,具体如下:

 

第一步、配置tomcat

1、在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

这是在tomcat启动时设置一些虚拟机参数,使服务器允许远程连接功能。其中 address=8000是远程连接的端口号(可以设置成任意其他不冲突端口)。连接方式有两种,为dt_shmem和dt_socket,分别表示本机调试和远程调试。(其他的应用服务器比如weblogic也应该可以设置这些参数,有兴趣的可以测试。)

 

2、在非windows系统中:

还需要把%CATALINE_HOME%/bin/startup.sh中

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

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

最后一行exec "$PRGDIR"/"$EXECUTABLE" start "$@" 中的start改成jpda start。由于默认的端口是8000,所以如果8000端口已有他用的话,还需在catalina.sh文件中设 置:JPDA_ADDRESS=8000。

输入命令startup.sh或者catalina.sh jpda start就可启动tomcat。

(

注:

在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 去掉。

)

 

这样就Ok了,重启动tomcat(远程),可以直接独立启动,而不用在eclipes的插件中启动。如在控制台输出“Listening for transport dt_socket at address: 8000”,即说明在tomcat中设置成功。

 

第二步、配置eclipse

Eclipse中,Run > Debug Configurations,在弹出对话框中右击Remote Java Application新建一个远程调试项,如下所示:

Java_tomcat配置远程调试_tomcat


 

1、在 “Name”输入框中输入远程调试的名称,在“Project”中选择要调试的项目,在“Host”中输入需要远程调试项目的IP,也就是tomcat所 在的IP,在“Port”中输入设置的端口号,比如上面设置的8000,然后钩选“Allow termination of remote VM”,点击“Apply”即可。点debug就可以进入debug状态了

2、在本机设置断点;

3、访问你的测试页面即可看到久违的调试界面。

 

但每次做上述操作非常烦,不如写个批处理,如取名为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文件


  • Java_tomcat配置远程调试_远程调试_02

  • 大小: 74.7 KB
  • 查看图片附件