我以这种方式注册了我的 MBean 应用程序:
ObjectName appName = new ObjectName("testpack.Application:name=myApp");
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
mbs.registerMBean(this, appName);
接下来我尝试通过以下方式获取所有已注册的实例:
for (ObjectInstance instance : mbs.queryMBeans(appName, null)) {
System.out.println(instance.toString());
}
但是即使我在同一个 JVM 上运行同一个应用程序的许多实例,它也只会打印一个实例。我误解了什么?如何正确执行此操作?
编辑
对不起,我误解了一些基本术语,如 MBean、JMX 代理、服务器和客户端。现在我现在我的应用程序必须是一个 JMX 客户端并公开通用 MBean 以在我的应用程序之间进行某种通信,并且将来可能还有自己的管理控制台。
@Gray 指出我在问一些我想要的不同。现在我从基础学习JMX,有些方面已经很清楚了。