1.设置JBoss为debug模式
在JBOSS_HOME/bin目录下,有个文件run.conf/run.bat(有时我们需要修改run.conf文件,而有时需要修改的则为run.bat文件,具体修改的文件,读者要根据自己的JBOSS版本和最终JBoss在 Linux或Windows下来决定,如在Linux下,则在run.sh文件里面有引用到run.conf文件,所以我们只需要修改run.conf文件,即可达到我们的目的,而在Windows下面,我们则需要修改run.bat文件,如果修改run.conf文件,可能达不到我们欲期的结果),在里面设置JPDA的参数:
(1) Windows 环境设置
set "JAVA_OPTS=%JAVA_OPTS% -Xrunjdwp:transport=dt_socket,address=[host_ip:]port,server=y,suspend=n"
(2) Linux 环境设置
找到Linux环境下的JBoss启动文件:run.sh
为了保留以前的启动配置,我们作以下操作:
查找run.conf,改为run-debug.conf,然后保存run-debug.sh文件
查找8787,可以找到:
#JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
把注释 # 去掉
启动JBoss (run.bat), 这样JBoss就运行在debug模式之下。
注:suspend=y/n(y表示在启动jboss服务器时,jboss会在中途暂停,等待eclipse debug模式的远程启动, 只有启动后,Jboss才会继续往下执行,n则相反),下图为suspend=y时的截图:
2.在Eclipse中设置远程参数
Run -> Debug Configurations... -> Remote Java Application 右键New, Specify your expected name and select project name.
选择Connection Type为Standard(Socket Attach)
Host:JBoss服务器地址
Port:JPDA参数中所指定的port number(一般默认为8787)
然后点击Debug按钮进行调试(注意:一个客户端只能连接一次,不能重复连接,否则后续的重复连接会报Connection refused错误!)
3.程序调试
在Eclipse的应用程序代码中任意的设置断点,触发部署在远程JBoss中的应用程序运行,程序运行到Eclipse中设定的断点处就会卡住。