我将远程JVM的ThreadMXBean代理作为
ObjectName objName = ManagementFactory.getThreadMXBean().getObjectName() ;
ThreadMXBean proxy = JMX.newMBeanProxy(MBeanServerConnection, objName, ThreadMXBean.class);
但是,当我拨打以下电话时,它表示无法从CompositeDataSupport
转换为ThreadInfo
。
ThreadInfo tInfo = proxy. getThreadInfo(true, true);
代理人不应该负责所有的转换吗?此外,我正在有效地调用getThreadInfo()
ThreadMXBean。
答案 0 :(得分:1)
ThreadMXBean
是一个MXBean。您的代码已调用JMX#newMBeanProxy
。此方法返回的代理无法处理MXBeans的属性。相反,使用JMX#newMXBeanFactory
来获取能够处理MXBeans属性的代理。
ThreadMXBean proxy = JMX.newMXBeanProxy(MBeanServerConnection, objName, ThreadMXBean.class);