我们正在尝试使用WAS(Websphere Application Server)实例调试一些平均的类加载器问题。
为此我们提供了选项-verbose:class,以便查看WAS正在从哪个类加载。
对于大多数课程,我们得到输出
Loading class <some class> from <some jar file>
但是对于某些类(包括导致问题的类)只有
Loading class <some class>
打印出来。
这些来自哪里?让他们直接从地狱装载,或者为什么IBM保护他们的真实身份?
更新: 我们正在寻找的类是javax.xml.ws.Service,它应该来自一个rt.jar(我们得到一个java.lang.VerifyError)
答案 0 :(得分:4)
如果您对JVM读取的文件感兴趣,可以使用strace,dtrace或lsof等操作系统工具来观察进程读取的文件。虽然这不会告诉你哪个类从那个文件加载。
您是否了解IBM JDK Diagnostics Guide?它包含“类加载器诊断”一章。
答案 1 :(得分:3)
也许你要加载的类不是来自jar?也许它是在飞行中生成的?该类的名称可能包含提示......
答案 2 :(得分:2)
如果输出看起来像
[Loaded $Proxy2 by instance of java.lang.reflect.Proxy]
...然后你的课程会自动生成