上下文:
我使用的是JBoss5.1.0.GA。我通过以下方式部署应用程序:在Eclipse中构建所有项目(目标:clean install
)以生成一个
.ear
文件,然后将.ear
文件复制到JBoss中的/deploy
文件夹中,然后运行bin/run.bat
。到目前为止,一切正常
在浏览器中访问该应用程序。
接下来,我想进行调试。一个重要的提示:我的JBoss服务器是独立的;在Eclipse中的“服务器”选项卡中没有任何条目。 所以我需要附加一个远程调试器。
我读了https://stackoverflow.com/a/516214/11233118和https://maverikpro.wordpress.com/2007/11/26/remote-debug-a-web-application-using-eclipse/
我遵循的步骤:
JAVA_OPTS
中设置run.conf.bat
变量set "JAVA_OPTS=%JAVA_OPTS% -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
此外,在run.bat中,对JAVA_OPTS进行了回显,并且在输出中看到我的设置如上
Remote Java Application
,端口为8787
(如上所述,在JAVA_OPTS中),并且主机为localhost
我单击Eclipse中的Debug按钮;在“调试”视图中,可以看到名为debug [Remote Java Application]的条目。展开树显示 线程正在运行。
我在代码中添加了断点(第二个链接明确指出:“您可以动态添加断点”),我在浏览器中打开应用程序,导航至 相应的屏幕,并且应用程序到达断点时将不会停止。作为检查,我还添加了log语句,与 带有断点的行。重新部署应用程序后,我可以在日志文件中看到日志消息,这意味着我将断点放置在正确的位置, 但是应用程序仍然不会像预期的那样停止并将焦点移至日食。
有什么想法吗?
我也尝试过:
address=HOSTNAME_OR_IP:8787
会得到
错误:传输错误202:gethostbyname:未知主机 错误:JDWP传输dt_socket初始化失败,TRANSPORT_INIT(510)
当我运行run.bat
telnet localhost 8787
;当eclipse debug [Remote Java Application]启动时,它不会连接(这是正常的),但是当我关闭调试配置时,telnet connect意味着端口8787没有问题。