I get a ThreadMXBean proxy for remote JVM as
ObjectName objName = ManagementFactory.getThreadMXBean().getObjectName() ;
ThreadMXBean proxy = JMX.newMBeanProxy(MBeanServerConnection, objName, ThreadMXBean.class);
但是,当我调用以下内容时,它说它无法从CompositeDataSupport
转换为ThreadInfo
。
ThreadInfo tInfo = proxy. getThreadInfo(true, true);
代理不应该负责所有转换吗?此外,我正在有效地调用ThreadMXBean上的getThreadInfo()
。
ThreadMXBean
是一个MXBean。 您的代码已调用JMX#newMBeanProxy
。 此方法返回的代理无法处理 MXBean 的属性。 相反,请使用JMX#newMXBeanFactory
获取能够处理 MXBean 属性的代理。
ThreadMXBean proxy = JMX.newMXBeanProxy(MBeanServerConnection, objName, ThreadMXBean.class);