Eclipse远程调试Tomcat

1. 应用场景

通过JavaJPDA远程调试功能将本地源码与远程部署的应用连接起来实现调试,其中程序源码与服务器上发布的编译代码版本要保持一致,保证调试定位准确。调试的过程中,部署在应用服务器上的应用处于DEBUGE模式。

2. Tomacat配置

2.1. JPDA参数

JPDAJava平台上的调试器定义了一个标准的体系结构。默认情况下,JVM并没有启用JPDA。需要在启动JVM的命令行加载以下参数:-Xdebug -Xrunjdwp:transport=dt_socket, address=8000,server=y,suspend=y

-Xdebug
启用调试特性
-Xrunjdwp
启用JDWP实现,它包含若干子选项:
transport=dt_socket
JPDA front-end和back-end之间的传输方法。dt_socket表示使用套接字传输。
address=8000
JVM在8000端口上监听请求。
server=y
y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。
suspend=y
y表示启动的JVM会暂停等待,直到调试器连接上。suspend=y这个选项很重要。如果
你想从Tomcat启动的一开始就进行调试,那么就必须设置suspend=y。


2.2. 配置方式一

打开apache-tomcat\bin目录将在启动文件中设置CATALINA_OPTS参数

      1)       Windows系统在startup.bat开始处中增加如下内容:

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

     2)       Linxu系统在startup.sh开始处中增加如下内容:

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

ps:linux打开端口命令的使用方法。 nc -lp 8000 &(打开8000端口)。查看是否打开8000端口netstat -an | grep 8000

2.3. 配置方式二

1·复制startup.bat startup_JPDA.bat并做如下配置:

set JPDA_TRANSPORT=dt_socket        --连接方式

set JPDA_ADDRESS=8000                    --监听端口

set JPDA_SUSPEND=y                          --是否挂起

call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

 

注意将call "%EXECUTABLE%" start %CMD_LINE_ARGS% 换成了call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%。如下图所示:

Eclipse远程调试Tomcat_第1张图片

如果配置挂起参数suspend=y(配置方式一)或JPDA_SUSPEND=y(配置方式二),JVM会使用socket方式,打开8000端口并挂起,等待客户端(Eclipse 远程Debug模式)接入,主要用于应用程序启动过程中的调试。如图:

3. Eclipse配置

1)打开Eclipse,导入项目源码(与被调试的代码一致)

2)打开Eclipse工具栏上Run -->Debug Configuration

3)选中左侧Remote Java Applilcation右键New—打开debug配置页面

Eclipse远程调试Tomcat_第2张图片

4)设置参数

Project:  选择被调试的项目

Connection Type: 使用SocketAttach

Hosttomcat服务器所在IP地址

Port8000(前面配置的监听端口)

5)设置完成后,记得点击Apply按钮然后点击下方的Debug按钮,eclipse便可以已Debug模式调试远程tomcat上发布的代码了。

4. 参考

       1·http://blog.csdn.net/jarfield/article/details/5250915

    其中有关于如何远程调试JVMJPDA简介


你可能感兴趣的:(Eclipse远程调试Tomcat)