Mbean 中的某些方法在 Jconsole 中不显示?
Some of the methods in Mbean do not show in Jconsole?
我有一个实现这些接口的简单 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 Server 上注册我的 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
我不知道为什么会这样,因为它只是一个非常简单的 Mbean...
规则是 get*()
和 set*()
是(变成)属性 访问器。因此,这些暴露在属性部分下,而不是在操作中。
如果存在 getter,则 JMX 客户端可以读取 属性,如果存在 setter,则可以写入。在这样的 属性.
上只有 setters 或只有 getters 是完全有效的
我有一个实现这些接口的简单 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 Server 上注册我的 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
我不知道为什么会这样,因为它只是一个非常简单的 Mbean...
规则是 get*()
和 set*()
是(变成)属性 访问器。因此,这些暴露在属性部分下,而不是在操作中。
如果存在 getter,则 JMX 客户端可以读取 属性,如果存在 setter,则可以写入。在这样的 属性.
上只有 setters 或只有 getters 是完全有效的