二、简单实例
1.建立一个需要被JMX管理的类Hello
- package bcndly.test.jmx;
-
- public class Hello implements HelloMBean {
-
- private String name;
-
- public String getName() {
- return name;
- }
-
- public void printHello() {
- System.out.println("Hello, " + name);
- }
-
- public void printHello(String theName) {
- System.out.println("Hello, " + theName);
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- }
package bcndly.test.jmx;
public class Hello implements HelloMBean {
private String name;
public String getName() {
return name;
}
public void printHello() {
System.out.println("Hello, " + name);
}
public void printHello(String theName) {
System.out.println("Hello, " + theName);
}
public void setName(String name) {
this.name = name;
}
}
2.建立Hello类的MBean接口,接口名必须是要管理的类名+MBean
- package bcndly.test.jmx;
-
- public interface HelloMBean {
-
- public String getName();
-
- public void setName(String name);
-
- public void printHello();
-
- public void printHello(String theName);
- }
package bcndly.test.jmx;
public interface HelloMBean {
public String getName();
public void setName(String name);
public void printHello();
public void printHello(String theName);
}
3.创建一个Agent类
- package bcndly.test.jmx;
-
- import javax.management.MBeanServer;
- import javax.management.MBeanServerFactory;
- import javax.management.ObjectName;
-
- import com.sun.jdmk.comm.HtmlAdaptorServer;
-
- public class HelloAgent {
-
- public static void main(String[] args) throws Exception {
- MBeanServer server = MBeanServerFactory.createMBeanServer();
- ObjectName helloName = new ObjectName("bcndyl:name=HelloWorld");
- server.registerMBean(new Hello(), helloName);
- ObjectName adapterName = new ObjectName("HelloAgent:name=htmladapter,port=8091");
- HtmlAdaptorServer adapter = new HtmlAdaptorServer();
- server.registerMBean(adapter, adapterName);
- adapter.start();
- System.out.println("start.....");
- }
-
- }
package bcndly.test.jmx;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;
import com.sun.jdmk.comm.HtmlAdaptorServer;
public class HelloAgent {
public static void main(String[] args) throws Exception {
MBeanServer server = MBeanServerFactory.createMBeanServer();
ObjectName helloName = new ObjectName("bcndyl:name=HelloWorld");
server.registerMBean(new Hello(), helloName);
ObjectName adapterName = new ObjectName("HelloAgent:name=htmladapter,port=8091");
HtmlAdaptorServer adapter = new HtmlAdaptorServer();
server.registerMBean(adapter, adapterName);
adapter.start();
System.out.println("start.....");
}
}
说明:
- HtmlAdaptorServer在jmxtools.jar包中,需要到SUN网站下载JMX 1.2.1 Reference Implementation
- MBeanServer是一个包含所有注册MBean的仓库.它是JMX代理层的核心.JMX1.0规范提供一个接口叫 javax.management.MBeanServer. 所有管理的在MBean操作通过MBeanServer执行.使用MBeanServer实例,你能够管理所有MBean.每一个MBean具有一个唯一标志,叫ObjectName.
- ObjectName (javax.management.ObjectName)是一个类,唯一标志一个在MBeanServer的MBean.这个对象名称用于管理应用程序来标志MBean以便操作能够在适当的MBean上被调用.一个对象名称包含两部分:域名称和没有经过排序的一个或者多个关键属性集,语法:[domain name]:property=value[,property=value]
- AdaptorServer,这个类将决定MBean的管理界面,这里用最普通的Html型界面。AdaptorServer其实也是一个MBean
- 运行HelloAgent,打开IE输入就可以看到注册的MBean,在控制台看printHello的输出结果
阅读(3426) | 评论(0) | 转发(0) |