Eclipse远程调试tomcat下部署的项目

Eclipse不仅可以调试本地代码,也可以远程调试部署在服务器上的项目代码,这点在调试本地无法重现的问题上意义尤为重大。

工具/原料

  • Eclipse

  • tomcat及tomcat下部署的项目

  • Windows环境

方法/步骤

  1. 首先在tomcat\bin下的catalina.bat中添加允许远程调试的参数SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=11111。其中address=11111的值可变,代表远程调试端口

    set _EXECJAVA=%_RUNJAVA%
    set MAINCLASS=org.apache.catalina.startup.Bootstrap
    set ACTION=start
    set SECURITY_POLICY_FILE=
    set DEBUG_OPTS=
    set JPDA=
    后加入:

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

    注: 11111为远程使用的端口任选--使用前未被占用

  2. 重启tomcat服务。在Eclipse中配置远程调试。debug---debug configurations…打开debug configurations框,右击remote java application选择new,其中project是选择要调试的项目名称,host是要调试的服务器的IP地址,post是远程调试端口,即第一步的11111。点击debug

    Eclipse远程调试tomcat下部署的项目

  3. 点debug后,远程调试联通后的效果如图。

    Eclipse远程调试tomcat下部署的项目

  4. 在代码上设置断点,可以设置方法断点,这样即使代码有轻微不一致,只要有此方法,就可以截住

    Eclipse远程调试tomcat下部署的项目

  5. 准备结束。开始调试。操作项目界面,当执行到断点时就会截获。效果如图,

    Eclipse远程调试tomcat下部署的项目

     

注意事项

  • 本机和服务器要能联通

  • 服务器端代码和本地尽量一致