我正在构建一个实用程序/工具来分析/跟踪WebLogic10(Java6)中部署的Java应用程序中的方法调用。其目的是快速了解我们的大型企业应用程序中的事件流。(浏览代码很乏味)
我遵循了与jdk6捆绑在一起的“跟踪”演示应用程序来构建我的版本。当连接到普通桌面风格的应用程序并成功跟踪方法调用时,该应用程序工作得很好。但是对于Weblogic,EventQueue.remove返回的是空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远程调试是如何实现的!
谢谢!
发布于 2013-01-30 03:42:13
您可以通过在JDWP层进行日志记录来了解问题所在。使用适用于您的操作系统的TCP数据包嗅探器。您可能必须在另一台计算机上运行调试器才能捕获流量。只需使用JDWP规范即可轻松解码数据包。如果只是分析没有帮助,您可以将您的JDWP流量与Eclipse或您的工作场景中的流量进行比较。我见过Eclipse调试器在用卸载类事件泛洪连接时显示为挂起。
https://stackoverflow.com/questions/14061165
复制相似问题