如何使用注释@MBean 指定 mbean 的名称

How to specify name of mbean with annotation @MBean

我有 JBoss 的 SAR 存档,并且在 jboss-service.xml 中注册了一个 MBean。 现在我想迁移到 TomEE 并使用标准 javax.management 注释 @MBean,但我无法找到如何指定它的名称并且它使用默认名称创建。 谁能帮帮我?

您必须按照描述在注册 bean 时指定名称 here:

  MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); 
  ObjectName name = new ObjectName("com.example.mbeans:type=Hello"); 
  Hello mbean = new Hello(); 
  mbs.registerMBean(mbean, name); 

TomEE 尚不支持(参见 https://issues.apache.org/jira/browse/TOMEE-1668) but DeltaSpike does and keeps the CDI integration: https://github.com/apache/deltaspike/blob/1572c07eb8d5f892308e1060a9fa1ccdbf18435e/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/jmx/MBean.java#L57