是否有一种方法为MBean注册具有相同(单一)对象名称的同一类的多个对象?更简单的方法是什么?
没有。如果您尝试注册一个与已注册实例同名的实例,则会抛出一个javax.management.InstanceAlreadyExistsException
。
必须为第二个实例使用不同的名称,如下所示:
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
ObjectName name = new ObjectName("firstInstance:type=Hello");
Hello mbean = new Hello();
mbs.registerMBean(mbean, name);
ObjectName name2 = new ObjectName("secondInstance:type=Hello");
Hello mbean2 = new Hello();
mbs.registerMBean(mbean2, name2);