1

私はWebsphereと複雑なクラスローディングの問題に取り組んでいます。通常は javap によって印刷される情報 (メソッドなど) をダウンロードまたは印刷できるようにしたいと考えています。

バイナリ差分を実行するために、未加工のバイナリ クラス データを取得する必要がある場合もあります。

これをどのように行いますか?

4

1 に答える 1

1

クラスをクライアントに公開するサーブレットまたはJMXMBeanを作成できます。

サーブレット:

String resourceParameter = ...;
OutputStream out = ...:
InputStream input = Thread.currentThread().getContextClassLoader()
   .getResourceAsStream(resourceParameter)
write(input, out);

クライアント:

GET http://host/DiagnosticServlet?resource=your/ClassName.class

リソースパラメータは、クラスファイルyour.ClassName-> your/ClassName.classである必要があります。その後、ファイルを保存してjavapを使用できます。

(byte []はサポートされていないため、MBeanはクラスファイルを文字列(Base 64など)にエンコードする必要があると思います。しかし、それについてはよくわかりません。残りは同じです。)

これを本番環境に導入する場合は、何らかの形式の認証を構成する必要があります。

于 2009-09-09T06:53:28.067 に答える