解决步骤如下:
1 查看tomcat的启动log,第一行“Listening for transport dt_socket at address: xxxx
检查这里是不是8000,如果不是,需要修改catalina.bat文件
2 修改tomcat的startup.bat文件,在@echo off后一行增加set jpda_address=8000
3 执行startup.bat文件启动tomcat
4 在eclipse中Run-Debug Configurations-Remote Java Application下找到相应工程,在connect的tag下设置port为8000。
5 debug
----------------------------------------------------------------
找到tomcat/bin/catalina.bat文件,编辑,在CATALINA_OPTS之前加上下行代码
set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=50001【用来调试的端口号】
保存,重启Tomcat
----------------------------------------------------------------
让java程序支持被远程调用所需要的java参数如下
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
如果使用weblogic、jboss和tomcat,需要配置相应的启动文件,
以tomcat为例,对于非windows平台下的操作来说,需要把%TOMCAT_HOME%/bin/startup.sh中的最后一行 exec "$PRGDIR"/"$EXECUTABLE" start "$@" 中的start改成jpda start。
如果8000端口有其他用处的话,那么还需要修改catalina.sh文件,添加一行 JPDA_ADDRESS=”1044”或者其他你指定的端口。这样就可以通过startup.sh或者catalina.sh jpda start来其中支持远程调试的tomcat了。
在windows平台上是一样的步骤,只不过.sh文件改成了.bat文件了。然后需要注意以下这些地方,
1、 catalina.bat文件默认的JPDA_TRANSPORT是dt_shmem,但是Eclipse只支持dt_socket,所以需要在catalina.bat中添加一行set JPDA_TRANSPORT=”dt_socket”
2、 catalina.bat文件默认的端口是jdbconn,我也不知道这个端口是多少,因此添加一个set JPDA_ADDRESS="1044"
启动tomcat,
启动Eclipse ,选择你想要Debug的类并设置断点,然后选择 Debug工具栏下的Debug子菜单(Debug concigurations),在弹出的Debug窗口中,在左边的菜单项中选择远程调试(Remote Java Application),然后输入机器名和端口,比如说localhost和1044,然后Apply并且开始Debug;
打开浏览器,输入需要调试的页面,此时会激活Eclipse 的Debug窗口,此时就可以进行Debug了。