我正在将我为在 WAS 和 WLS 上工作的应用程序编写的一个小工具迁移到 JBoss AS 5.1。基本上,这些工具帮助我解决类加载问题:它在运行时发现指定类的类加载层次结构,并找出每个类加载器加载的所有类和 jar。这是一个相当简单的工具——它只是使用 Classloader.getPArent() 方法来获取类加载器层次结构。
使它适用于 WLS 和 WAS 的技巧是,它们的类加载器实现要么有一个“ getClassPath() ”方法,它返回所有类路径条目的完整列表,要么它们是 URLClassloader 类的实例,我可以使用它的“ getURLs ” () ' 获取相同信息的方法。
现在,看起来 JBoss 内部类加载器不遵循相同的模式 - 所以我想知道是否有其他方法可以以某种方式获取相同的信息?
基本上,我想全面了解类加载层次结构以及哪个类加载器在运行时加载哪些类/jar。它必须是运行时信息——因为我希望能够为类的任何实例找出这些信息,无论是 servlet、EJB、util 类还是 JSP——这样我才能看到类加载器层次结构中的位置这些对象是什么,它们的同级加载资源是什么以及它们的父类加载器是什么。
谢谢!
码头