说我正在调试部署在Java EE应用服务器内部的应用程序的一些奇怪的类加载问题。出于某种原因,我在两个类加载器(2个不同的EAR类加载器)的类路径上重复了jar,并且这些类加载器的名称空间中的类需要协作。任何工具来查看类加载器树的图片?
所以问题是:是否存在任何可以显示类加载器树的图像(图片)以及每个类加载器的存储库的工具?当然,显示一张图片并不重要,如果它可能是某种动态用户界面(即像Windows资源管理器树形折叠/展开),我会非常高兴。
UPD:我正在使用JBoss 5.1。
谢谢
说我正在调试部署在Java EE应用服务器内部的应用程序的一些奇怪的类加载问题。出于某种原因,我在两个类加载器(2个不同的EAR类加载器)的类路径上重复了jar,并且这些类加载器的名称空间中的类需要协作。任何工具来查看类加载器树的图片?
所以问题是:是否存在任何可以显示类加载器树的图像(图片)以及每个类加载器的存储库的工具?当然,显示一张图片并不重要,如果它可能是某种动态用户界面(即像Windows资源管理器树形折叠/展开),我会非常高兴。
UPD:我正在使用JBoss 5.1。
谢谢
您正在使用哪个应用程序服务器?
除了这些,不要以为这样的工具存在。
在JBoss中,你可以log all classloader events,它应该能够精确地告诉你你的冲突类在哪里,如果你可以筛选冗长的话。
或者你也可以进入jmx控制台,找到jboss.classloader部分,找到你的耳朵(类似于id="vfszip:/apps/jboss-5.1.0.GA/server/default/deploy/your.war/")的条目并调用findClassLoaderForClass来为你提供问题的类。
链接只显示jboss文档。在确定在哪里可以找到这个信息不是很有帮助? – 2013-03-05 17:52:07
链接更新: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