1

我正在处理 Websphere 和复杂的类加载问题。我希望能够下载或打印通常由 javap 打印的信息(方法等)。

我可能还需要获取原始二进制类数据,以执行二进制差异。

你会怎么做?

4

1 回答 1

1

您可以编写一个 Servlet 或 JMX MBean,将类公开给您的客户端。

小服务程序:

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。

(我认为 MBean 必须将您的类文件编码为字符串(例如 Base 64),因为不支持 byte[]。但我不确定。其余的都是一样的。)

如果这将在生产中部署,则应配置某种形式的身份验证。

于 2009-09-09T06:53:28.067 回答