【问题标题】:How to add description to JMX MXBean如何向 JMX MXBean 添加描述
【发布时间】:2017-03-30 05:54:09
【问题描述】:

我想在 Apache-Tomcat 7.0 上公开我的 MXBean。 虽然我的 MXBean 注册成功,但我无法向那些 MXBean 公开的操作添加描述。

注册 MXBeans

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
ObjectName m_mxbeanOName = new ObjectName( "MyMXBean:type=" + "MyComponent"+",name=MyMXBean");
MyMXBean m_mxbean = new MyMXBean ();
if(!mbs.isRegistered(m_mxbeanOName))
    mbs.registerMBean(m_mxbean,  m_mxbeanOName);

MyMXBean 接口

public interface MyMXBean { 
    public int add (int x, int y);     
}

MyMXBean 实现

import com.sun.org.glassfish.gmbal.Description;
import com.sun.org.glassfish.gmbal.DescriptorFields;
import com.sun.org.glassfish.gmbal.Impact;
import com.sun.org.glassfish.gmbal.ManagedOperation;

public class MyMXBeanImpl implements MyMXBean {
    @ManagedOperation(impact=Impact.ACTION_INFO)
    @Description("Integer Addition: First parameter is the augend and second parameter is the addend.")
    @DescriptorFields({"p1=augend","p2=addend"})
    public int add(int x, int y) { 
        return x + y; 
    }

注解@ManagedOperation、@Description、@DescriptorFields 对jconsole 没有影响。 JConsole 继续显示默认值

请告诉我如何在 JConsole 上显示有关我的 MXBean 操作的描述。

【问题讨论】:

标签: jmx


【解决方案1】:

我发现的最简洁的方法是使用 StandardMBean(或 StandardEmitterMBean)作为您在 JMX 中注册的实际对象。然后,继承 StandardMBean 并覆盖各种 getDescription 方法。在这些方法中,请阅读包含描述的注释。

【讨论】:

    【解决方案2】:

    我发现这个非常好的博客条目,其中包含 @Descriptor 和 @Name 属性的代码以及处理此问题的 AnnotatedStandardMXBean 包装器。

    http://actimem.com/java/jmx-annotations/

    使用此示例 MXBean:

      @MXBean
        @Description("A test resource")
        public interface SampleMXBean {
            @Description("string#1")
            String getString1();
    
            @Description("string#2")
            String getString2();
    
            @Description("string#3")
            String string3(@Description("int i") @Name("i") int i, @Description("long j") @Name("j") long j);
        }
    

    【讨论】:

      猜你喜欢
      • 2016-04-14
      • 2021-10-06
      • 1970-01-01
      • 2012-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      相关资源
      最近更新 更多