相信做过Java Web项目的朋友都非常熟悉MyEclipse(汗,有不知道的?),集成Tomcat一点deploy按钮,直接发布成功,再一个start就可以欣赏自己的大做了。可有些项目或者公司不允许使用MyEclipse(收费的,呵呵),所以部署打包的事完全交给了Ant或者Maven来做,但这两兄弟都得在命令行下来做,对于被MyEclipse惯坏的我来说,用着简直是痛苦之极,就拿Ant来说,往往要做如下几步:
1.进入工程目录,运行Ant命令编译;
2.生成Eclipse工程所需的文件(.classpath和.project等);
3.antexpand发布编译生成的war包;
4.从外面启动Tomcat(某些工程并非标准JavaEE工程,无法直接在Server视图下集成服务器);
5.访问自己的成果,汗,此时如不做特殊设置,效果是看到了,可是调试呢?
带着问题学习了下远程调试总结如下:
在做远程调试时,在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= 8000
其中 address=8000是没被使用的端口号。连接方式有两种,为dt_shmem和dt_socket,分别表示本机调试和远程调试。
二、在非windows系统中:
还需要把% CATALINE_HOME %/bin/startup.sh中的最后一行exec "$PRGDIR"/"$EXECUTABLE" start "$@" 中的start改成jpda start。由于默认的端口是8000,所以如果8000端口已有他用的话,还需在catalina.sh文件中设置:JPDA_ADDRESS=8000。
输入命令startup.sh或者catalina.sh jpda start就可启动tomcat。
第二步、配置eclipse
在Eclipse中选择Run Debug,在弹出对话框中右击Remote Java Application新建一个远程调试项,如下所示:
在 “Name”输入框中输入远程调试的名称,在“Project”中选择要调试的项目,在“Host”中输入需要远程调试项目的IP,也就是tomcat所在的IP,在“Port”中输入设置的端口号,比如上面设置的8000,然后钩选“Allow termination of remote VM”,点击“Apply”即可。
设置完后就可以开始调试了,大概分一下几步:
1、启动tomcat(远程),如在控制台输出“Listening for transport dt_socket at address: 8000”,即说明在tomcat中设置成功;
2、在本机设置断点;
3、进入上图界面,选择要调试的项,点击“Debug”即可进行远程调试;
4、访问你的测试页面即可看到久违的调试界面。
但每次做上述操作非常烦,不如写个批处理,如取名为Tomcat debug.bat,在这个文件中加入下面几行:
cd %CATALINE_HOME%/bin
set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket
set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787
startup
将此脚本保存到tomcat/bin目录下,然后发个快捷方式在桌面,欧啦~~~~
这样需要远程调试时,运行debug.bat即可;不需要远程调试时,还是运行startup.bat文件