2009-11-04 66 views
9

说我正在调试部署在Java EE应用服务器内部的应用程序的一些奇怪的类加载问题。出于某种原因,我在两个类加载器(2个不同的EAR类加载器)的类路径上重复了jar,并且这些类加载器的名称空间中的类需要协作。任何工具来查看类加载器树的图片?

所以问题是:是否存在任何可以显示类加载器树的图像(图片)以及每个类加载器的存储库的工具?当然,显示一张图片并不重要,如果它可能是某种动态用户界面(即像Windows资源管理器树形折叠/展开),我会非常高兴。

UPD:我正在使用JBoss 5.1。

谢谢

回答

3

在JBoss中,你可以log all classloader events,它应该能够精确地告诉你你的冲突类在哪里,如果你可以筛选冗长的话。

或者你也可以进入jmx控制台,找到jboss.classloader部分,找到你的耳朵(类似于id="vfszip:/apps/jboss-5.1.0.GA/server/default/deploy/your.war/")的条目并调用findClassLoaderForClass来为你提供问题的类。

+0

链接只显示jboss文档。在确定在哪里可以找到这个信息不是很有帮助? – 2013-03-05 17:52:07

+0

链接更新:https://access.redhat.com/site/documentation/en-US/JBoss_Enterprise_Application_Platform/4.3/html/Server_Configuration_Guide/Class_Loading_and_Types_in_Java-LinkageErrors___Making_Sure_You_Are_Who_You_Say_You_Are.html – 2014-05-13 11:47:20