Eclipse 中的 JBoss 调试

Posted

技术标签:

【中文标题】Eclipse 中的 JBoss 调试【英文标题】:JBoss debugging in Eclipse 【发布时间】:2010-10-05 16:43:27 【问题描述】:

如何配置 JBoss 以在 Eclipse 中调试应用程序?

【问题讨论】:

【参考方案1】:

您的意思是来自 Eclipse 的remote debug JBoss?

来自Configuring Eclipse for Remote Debugging:

如下设置JAVA_OPTS变量:

set JAVA_OPTS= -Xdebug -Xnoagent 
   -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n %JAVA_OPTS%

或:

JAVA_OPTS="-Xdebug -Xnoagent 
  -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n $JAVA_OPTS"

在“调试”框架中,选择“远程 Java 应用程序”节点。

在“连接属性”中,将localhost 指定为主机,并将端口指定为在JBoss 服务器的运行批处理脚本中指定的端口8787

【讨论】:

不确定是否为这个旧的答案添加评论会被阅读,但无论如何都可以!我已经使用此设置通过 Eclipse 在我的 JBOSS 服务器上调试应用程序,它工作正常 - 我可以在 Eclipse 中设置断点并拦截服务器上的请求。但是,当我重新构建应用程序并将其热部署到 JBOSS 上时,新版本的应用程序运行成功,但我无法再通过 Eclipse 拦截处理。断点被忽略。这是预期的行为吗?每次要调试重新部署的应用程序时,是否必须重新启动 JBOSS? @dairemac:它至少会被我阅读;)感谢您的反馈。我无法直接重现此特定设置,但我怀疑监控应用程序的进程在热部署期间被终止,这意味着重新启动 JBossDebug 会话。 @VonC:我已经在 run.bat 文件中进行了更改,并正在尝试重新启动 jboss 服务器,但与正常模式相比,它需要大量时间,关于可能发生的任何建议提高启动时间? @Rachel:我最近没有使用该设置的经验,因此可以使用任意数量的参数(内存、使用的 jdk 版本、java 选项……)。我会首先尝试通过 procmon (technet.microsoft.com/en-us/sysinternals/bb896645) 之类的工具监控哪些资源正在占用时间(IO、阻塞端口、某种超时?)。 我在 jboss 4 中设置它,在设置 JAVA_OPTS 变量时遇到了一些问题。因此,将我的解决方案添加为注释:在 bin/run.bat(对于 windows)或 bin/run.sh(对于 mac 和 linux)中设置 JAVA_OPTS 变量【参考方案2】:

@VonC 所说的是正确的,但是您可以将设置调试的命令直接放入 jBoss Launch 上的 VM 参数中。

为此,在Eclipse 中打开jBoss 服务器,转到打开启动配置并将其放入VM 参数textbox: vm args

【讨论】:

【参考方案3】:

这里,如果你想直接调试服务器那么你可以使用:

1.)Windows ->

2.)显示视图 -> 服务器:右键单击服务器,然后在调试模式下运行。

【讨论】:

【参考方案4】:

您需要在 Eclipse 调试配置中定义一个远程 Java 应用程序:

打开调试配置(选择项目,然后从菜单运行/调试配置中打开) 在左侧树中选择远程 Java 应用程序,然后按“新建”按钮 在右侧面板上选择您的 Web 应用程序项目并在端口字段中输入 8787。 这是此过程的详细说明的链接。

当您启动远程调试配置时,Eclipse 将附加到 JBoss 进程。如果成功,调试视图将显示 JBoss 线程。工具栏/菜单中还有一个断开连接图标,用于停止远程调试。

【讨论】:

【参考方案5】:

VonC 在他的回答中提到了如何从 Eclipse 远程调试。

我想补充一点,JAVA_OPTS 设置已经在run.conf.bat 中。您只需取消注释即可:

在 Windows 上的 JBOSS_HOME\bin\run.conf.bat 中:

rem # Sample JPDA settings for remote socket debugging
set "JAVA_OPTS=%JAVA_OPTS% -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"

Linux版本类似,位于JBOSS_HOME/bin/run.conf

【讨论】:

取消注释该行完美,在我看来是添加调试 JAVA_OPTS 的最佳位置 完美答案@xdhmoore【参考方案6】:

如果您使用 Eclipse WebTools 设置 JBoss 服务器,您可以简单地以调试模式启动服务器(服务器视图中的调试按钮)。这将允许您在 JBoss 内运行的应用程序中设置断点。

【讨论】:

这是真的,而且值得怀疑(因为我不知道这是关于远程调试还是本地调试):+1

以上是关于Eclipse 中的 JBoss 调试的主要内容,如果未能解决你的问题,请参考以下文章

如何用Eclipse调试JBoss AS 7和WildFly8容器自身

无法使用 JBoss Web 2.1.4 windows 和 eclipse 设置远程调试

eclipse远程调试超时问题

最终启动序列中的错误 - STM32L476 的 Eclipse 系统工作台调试

从 Eclipse 调试 JSP

Eclipse/JBoss Developer Studio 中的 dropins 文件夹是啥?