- 论坛徽章:
- 0
|
二、简单实例
1.建立一个需要被JMX管理的类Hello
Java代码
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
Java代码
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类
Java代码
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输入http://localhost:8091就可以看到注册的MBean,在控制台看printHello的输出结果
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/59758/showart_1109287.html |
|