Eclipse远程调试Web应用

最近需要在原来的一个项目增加新的功能,把项目下下来后,发现项目超大,在Eclipse启动要不内存溢出,要不解析请求非常慢,无赖之下想到Eclipse远程调试.所谓Eclipse远程调试,就是源代码在Eclipse下,而应用程序通过本机和远程机器启动,Eclipse通过socket与应用进行通信,从而达到和本地一样效果的调试的目的.当然这种调试只适用于远程和Eclipse下的源代码相同的情况,如果Eclipse下的源代码经常变动的话,就显得很不方便.闲话少说,现在来看怎么配置远程调试. 

一,配置web服务器
对于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。 

对于jboss: 
    在windows系统下 
     修改$JBoss\jboss-4.0.4\bin\run.bat 
set JAVA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n %JAVA_OPTS%  

   

    在非windows系统下

    修改 $JBoss\jboss-4.0.4\bin\run.conf 文件,加入

    JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"

 

 

二.配置Eclipse

 

      在Eclipse中,选择要调试的项目, 右键"debug as->debug configuration ..";在出现的对话框中,选择“Remote Java Application” ,右键单击,在弹出的菜单中选择“New”,在出现的对话框中的“host”中输入Jboss服务器的 ip(本机则输入localhost或127.0.0.1),在“port”中输入调试的端口号(8787 ),选择“debug”开始调试;

剩下的步骤和在Eclipse下调试eclipse启动的项目相同

 

 

三.如果使用以上的配置后,Eclipse连接远程应用被拒绝,很可能是Eclipse使用代理造成的

    解决办法:

    Eclipse下选择window->Preferences->network connections,active provider中选择direct而不要选择manual,保存即可

猜你喜欢

转载自zhenghuali168.iteye.com/blog/1504906