2

我正在构建一个实用程序/工具来分析/跟踪部署在 Weblogic 10 (java 6) 中的 Java EE 应用程序中的方法调用。目的是快速了解我们庞大的企业应用程序中的事件流。(浏览代码很乏味)

我已经按照与 jdk6 捆绑的“Trace”演示应用程序来构建我的版本。该应用程序在连接到普通桌面样式应用程序并成功跟踪方法调用时工作正常。但是对于 Weblogic,EventQueue.remove 返回 null EventSet。请注意,与 weblogic VM 的连接是成功的。但是一旦连接上,部署的 Web 应用程序中的任何点击或活动都会导致目标 VM 中的线程挂起,最终导致 http 请求超时。

我正在为 weblogic 启动脚本使用以下 vm 参数:

-Xdebug -Xnoagent -Djava.compiler=NONE \
-Xrunjdwp:transport=dt_socket,server=y,address=9002,suspend=n

使用的示例代码来自 jdk1.6.0_13\demo\jpda\examples\com\sun\tools\example\trace

有没有人有类似工具的经验或面临类似的问题。想知道Eclipse远程调试是怎么实现的!

谢谢!

4

1 回答 1

0

您可以通过在 JDWP 层登录来查看问题所在。为您的操作系统使用 TCP 数据包嗅探器。您可能必须在另一台机器上运行调试器才能捕获流量。只需使用 JDWP 规范即可轻松解码数据包。如果只是分析没有帮助,您可以将您的 JDWP 流量与来自 Eclipse 或您的工作场景的流量进行比较。我已经看到 Eclipse 调试器在使用未加载的类事件淹没连接时出现挂起。

于 2013-01-29T19:42:12.527 回答