3

私たちは、WAS (Websphere Application Server) インスタンスで平均的なクラスローダーの問題をデバッグしようとしています。

このために、どのクラスの WAS がどこからロードされているかを確認するために、オプション -verbose:class を提供しました。

ほとんどのクラスでは、次のような出力が得られます

Loading class <some class> from <some jar file>

ただし、一部のクラス(問題を引き起こしているクラスを含む)のみ

Loading class <some class>

印刷されます。

これらはどこから来たのですか?彼らは地獄からまっすぐにロードされますか、それともなぜIBMは彼らの本当のアイデンティティを保護していますか?

更新: 探しているクラスは javax.xml.ws.Service であり、実際には rt.jar から取得する必要があります (java.lang.VerifyError を取得しています)。

4

3 に答える 3

4

JVM によって読み取られるファイルに関心がある場合は、strace、dtrace、lsof などのオペレーティング システム ツールを使用して、プロセスによって読み取られるファイルを観察できます。ただし、そのファイルからどのクラスがロードされたかはわかりません。

IBM JDK Diagnostics Guideを知っていますか? 「クラスローダの診断」の章が含まれています。

于 2011-05-19T12:24:37.190 に答える
3

ロードしたいクラスが jar から来ていない可能性がありますか? 多分それはその場で生成されますか?クラスの名前にはヒントが含まれている可能性があります...

于 2011-05-19T12:14:19.683 に答える
2

出力が次のように見える場合

[Loaded $Proxy2 by instance of java.lang.reflect.Proxy]

...その後、クラスが自動生成されます

于 2011-05-19T12:19:59.240 に答える