我有简单的MBean X
,有3个方法和4个属性。它实现了接口XMBean
(2种方法)。
在其他课程中我注册:
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
X x= new X(14, 16, 17, 13);
ObjectName name = new ObjectName("package:type=xxxx");
mbs.registerMBean(x, name);
我可以在jConsole中看到它。我可以调用我从接口实现的两个方法。我想我也应该看到我的MBean的属性?为什么jConsole只向我显示操作?如何显示属性?
答案 0 :(得分:0)
我在下面粘贴了简单的代码:
public class X implements XMBean
{
public Automat(int aa, int bb, int cc, int dd)
{
a = aa;
b = bb;
c = cc;
d = dd;
}
public int operation1(char product)
{
return 1;
}
public int operation2(char product)
{
return 2;
}
public Integer getA()
{
return a;
}
public Integer getB()
{
return b;
}
public Integer getC()
{
return c;
}
public Integer getD()
{
return d;
}
private int a;
private int b;
private int c;
private int d;
}
/////////////////////////////////////////////// /////////////////////////////////////////
public interface XMBean
{
public int operation1(char product);
public int operation2(char product);
}
答案 1 :(得分:0)
JMX在很大程度上依赖于使用* MBean接口的反射。正如Andy所说,XBean接口必须在getter和/或setter中公开属性。来自Oracle's JMX tutorial:
根据JMX规范的定义,getter是任何公共方法 这不会返回void,其名称以get开头。一个吸气剂 使管理器能够读取其类型为的属性的值 返回对象的那个。 setter是任何公共方法 单个参数,其名称以set开头。一个setter使a manager在属性中写入一个新值,其类型相同 作为参数。
如果您正在使用Eclipse,则可以通过右键单击打开上下文菜单并单击Refactor>轻松生成界面。提取界面。