MBean为同一类的多个对象使用相同(单个)对象名称的注册

问题描述:

是否有一种方法可以为同一个类的多个对象使用相同(单一)对象名称进行MBean注册?什么是更简单的方法?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);