1

我得到一个远程 JVM 的 ThreadMXBean 代理

 ObjectName objName = ManagementFactory.getThreadMXBean().getObjectName() ;


  ThreadMXBean proxy = JMX.newMBeanProxy(MBeanServerConnection, objName, ThreadMXBean.class);

但是,当我调用以下命令时,它说它无法从转换CompositeDataSupportThreadInfo.

 ThreadInfo tInfo = proxy. getThreadInfo(true, true);

代理不应该处理所有转换吗?此外,我正在getThreadInfo()有效地调用 ThreadMXBean。

4

1 回答 1

1

ThreadMXBean是一个 MXBean。您的代码已调用JMX#newMBeanProxy. 此方法返回的代理无法处理 MXBean 的属性。相反,用于JMX#newMXBeanFactory获取能够处理 MXBeans 属性的代理。

ThreadMXBean proxy = JMX.newMXBeanProxy(MBeanServerConnection, objName, ThreadMXBean.class);
于 2017-07-19T23:16:30.240 回答