Mbean中的一些方法没有在Jconsole中显示?

时间:2015-04-18 04:10:08

标签: java java-ee jmx jconsole mbeans

我有一个简单的Mbean来实现这些接口

public interface HelloMBean {

    public void print();

    public void printHello();


    public int getInt();

    public String getName();
    public void setName(String s);

}

实施是:

public class Hello implements HelloMBean{

    private String name;

    @Override
    public String getName() {
        // TODO Auto-generated method stub
        return this.name;
    }

    @Override
    public void setName(String s) {
        // TODO Auto-generated method stub
        this.name=s;
    }

    @Override
    public void print() {
        // TODO Auto-generated method stub

        System.out.println("heelp!");

    }

    @Override
    public void printHello() {
        // TODO Auto-generated method stub

        System.out.println("heelp!"+" "+this.name);


    }

    @Override
    public int getInt() {
        // TODO Auto-generated method stub
        return 0;
    }

}

我开始用Mbean服务器注册我的Mbean,

MBeanServer server=ManagementFactory.getPlatformMBeanServer();
        ObjectName objectName=new ObjectName("richard:name=fuck");

        try {
            server.registerMBean(new Hello(),objectName);
        } catch (InstanceAlreadyExistsException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (MBeanRegistrationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (NotCompliantMBeanException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        try {
            System.in.read();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

但是当我检查Jconsole时,它只有两个操作,分别是print()和printHello

enter image description here

我不知道它为什么会发生,因为它只是一个非常简单的Mbean ......

1 个答案:

答案 0 :(得分:3)

规则是get*()set*()是(变成)属性访问者。因此,它们在属性部分下公开,而不在操作中公开。

如果存在getter,则JMX客户端可以读取该属性,如果存在setter,则可以写入。仅限制定者或仅在此类财产上获取者是完全有效的。