我们有一个JMX应用程序,在其中打开连接,然后在方法调用中使用对象名称Catalina:type=Deployer,host=[hostname]
(以检查应用程序是否已部署),但会收到一个异常(InstanceNotFoundException)。这可能是什么原因?
最佳答案
如果不看更多代码或上下文,在这里很难有所帮助。但是,如果查看支持大多数JMX客户端的javadocs for MBeanServerConnection
,则可以看到InstanceNotFoundException
表示:
InstanceNotFoundException指定的MBean未在MBean服务器中注册。
这意味着您指定的ObjectName
与在您连接到的JMX服务器上注册的bean名称不匹配。
使用的ObjectName
必须与服务器注册的完全匹配。应该通过调用以下命令返回相同的名称:
Set<ObjectName> names = mBeanServerConnection.queryNames(null, null);