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

Java 为同一类的多个对象使用相同(单个)对象名进行MBean注册,java,jmx,mbeans,objectname,Java,Jmx,Mbeans,Objectname,对于同一类的多个对象,是否有一种方法可以使用相同的单一对象名注册MBean?更简单的方法是什么?不,没有。如果您尝试注册一个实例,该实例与另一个已注册的实例同名,则将抛出javax.management.InstanceAlreadyExistsException 第二个实例必须使用不同的名称,如下所示: MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); ObjectName name = new ObjectName(

对于同一类的多个对象,是否有一种方法可以使用相同的单一对象名注册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);