tomcat使用Eclipse进行远程调试(线上调试)
什么是远程调试,就是在A机器上利用Eclipse单步跟踪调试B机器上的Web应用,当然调试A机器上Web应用也是没有问题的,90%我都是调试本机的Web应用,远程调试的意义我想我不用说了,大家都会想到它的好处,你可以在本地调试非本地测试环境上的应用,这是件多么美妙的事,所以我就不说它的好处了,那么本地调试呢,我喜欢本地调试也采用下面要介绍的方法,为什么不用eclipse,WTP,TomcatPlugin等。
环境:tomcat,Eclipse,做远程调试不需要任何插件。当然可以使用Eclipse把Web应用部署到tomcat上面,注意只是部署,一般来讲使用远程调试就不需要配置Eclipse的Web Server了,Eclipse在这里只起到一个copy文件的作用,好在现在eclipse可以随意指定目录copy了。即 Deployment 对话框中的Custom Location,在这里推荐大家一个copy文件的小插件,有了这个插件就不需要eclipse部署了。
下面按步骤进行讲解
1. 将web应用部署到Tomcat的webapp目录下
2. 修改Tomcat/bin/startup.bat文件,在最前面加上如下代码
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
注意上面命令必须写成一行中间不能有换行,-前是空格-后是非空格,由于显示器分辨率不同,该文章在显示的时候可能会有换行的情况。
更多Web服务器远程调试参数可参见
3.必须先启动Tomcat启动tomcat/bin/startup.bat参下图
![](https://images2015.cnblogs.com/blog/724399/201702/724399-20170215104656660-975709502.jpg)
4.在相应的类方法中设置断点
5.在eclipse中配置debug,配置完成后点击debug按钮。如图:
![](https://images2015.cnblogs.com/blog/724399/201702/724399-20170215104803535-1146917841.jpg)
![](https://images2015.cnblogs.com/blog/724399/201702/724399-20170215104811629-883869235.jpg)
6.打开浏览器访问在第1步部署的web应用,访问index.jsp,使得程序进入相应的断点就可以了。
7.不需要调试的时候点击断开,需要调试的时候再点击debug,非常方便,当调试过程中出现引用非本project的源码时(例如跟踪到tomcat里面或spring,hibernate里面),会提示找不到源码,点击相应提示的按钮(到时候editor区只有一个按钮,所以大家就不要问哪个按钮了)可以添加源码继续调试,或在配置debug前就把需要的源码都添加上,在source选项卡里面,因为具体的基本调试这方面知识不属于本话题讨论范围内,就不过多介绍了。
参考: