package com.liuyang.jmx.mbeans.counter;
public class Counter implements CounterMBean {
int sum = 0;
public void add(int num) {
sum+=num;
}
public int get(int num) {
sum+=num;
return sum;
}
}
从代码中也可以看到,标准 MBean 实现类与普通的 Java 程序也没什么区别。package com.liuyang.jmx.mbeans.counter;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;
public class CounterServer {
public static void main(String[] args) throws Exception {
MBeanServer server = MBeanServerFactory.createMBeanServer();
ObjectName name = new ObjectName("book.liuyang:service=Counter");
server.registerMBean(new Counter(), name);
String[] sig1 = {"int"};
Object[] opArgs1 = {new Integer(3)};
Object result1 = server.invoke(name, "add", opArgs1, sig1);
System.out.println(result1);
String[] sig2 = {"int"};
Object[] opArgs2 = {new Integer(0)};
Object result2 = server.invoke(name, "get", opArgs2, sig2);
System.out.println(result2);
}
}
2 . ObjectNameserver.registerMBean(new Counter(), name);
通过 MBeanServer 的 invoke 方法还可以调用一个 MBean ,在调用时需要传递一些与调用有关的参数:
Object result1 = server.invoke(name, "add", opArgs1, sig1);
其中: