现在的位置: 首页 > 综合 > 正文

部署在Tomcat上应用程序的远程调试

2013年12月08日 ⁄ 综合 ⁄ 共 1728字 ⁄ 字号 评论关闭

在做远程调试时,在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”即可。

三、补充

当然,为了方便,可以新建一个批处理文件,假如取名为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

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

这个方式也可以应用与其他JAVA开发的项目,如C/S结构的项目。在启动参数加入

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788即可。

例如:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788 -Xms512m -Xmx1024m -classpath ./;../;./../lib/jason_bootloader.jar;./../lib/jason_log.jar;./../lib/log4j-1.2.15.jar  com.as.jason.classload.BootLoader

 

四、实际使用到的例子

cd /d "%~dp0"  
SET JAVA_OPTS=-Xms512m -Xmx1024m
SET JAVA_OPTS=%JAVA_OPTS% -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false
SET JAVA_OPTS=%JAVA_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788
java %JAVA_OPTS% -classpath ......................

%0代指批处理文件自身
%~d0 是指批处理所在的盘符
%~dp0 是盘符加路径
cd %~dp0 就是进入批处理所在目录了

 

抱歉!评论已关闭.