Chinaunix首页 | 论坛 | 博客
  • 博客访问: 218057
  • 博文数量: 67
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 890
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-17 09:42
文章分类

全部博文(67)

文章存档

2010年(5)

2009年(7)

2008年(55)

我的朋友

分类: Java

2008-08-06 09:55:46

二、简单实例

1.建立一个需要被JMX管理的类Hello
Java代码 复制代码
  1. package bcndly.test.jmx;   
  2.   
  3. public class Hello implements HelloMBean {   
  4.        
  5.     private String name;   
  6.   
  7.     public String getName() {   
  8.         return name;   
  9.     }   
  10.   
  11.     public void printHello() {   
  12.         System.out.println("Hello, " + name);   
  13.     }   
  14.   
  15.     public void printHello(String theName) {   
  16.         System.out.println("Hello, " + theName);   
  17.     }   
  18.   
  19.     public void setName(String name) {   
  20.         this.name = name;   
  21.     }   
  22.   
  23. }  


2.建立Hello类的MBean接口,接口名必须是要管理的类名+MBean
Java代码 复制代码
  1. package bcndly.test.jmx;   
  2.   
  3. public interface HelloMBean {   
  4.        
  5.     public String getName();   
  6.   
  7.     public void setName(String name);   
  8.   
  9.     public void printHello();   
  10.   
  11.     public void printHello(String theName);   
  12. }  


3.创建一个Agent类
Java代码 复制代码
  1. package bcndly.test.jmx;   
  2.   
  3. import javax.management.MBeanServer;   
  4. import javax.management.MBeanServerFactory;   
  5. import javax.management.ObjectName;   
  6.   
  7. import com.sun.jdmk.comm.HtmlAdaptorServer;   
  8.   
  9. public class HelloAgent {   
  10.   
  11.     public static void main(String[] args) throws Exception {   
  12.         MBeanServer server = MBeanServerFactory.createMBeanServer();   
  13.         ObjectName helloName = new ObjectName("bcndyl:name=HelloWorld");   
  14.         server.registerMBean(new Hello(), helloName);   
  15.         ObjectName adapterName = new ObjectName("HelloAgent:name=htmladapter,port=8091");   
  16.         HtmlAdaptorServer adapter = new HtmlAdaptorServer();   
  17.         server.registerMBean(adapter, adapterName);   
  18.         adapter.start();   
  19.         System.out.println("start.....");   
  20.     }   
  21.   
  22. }  

说明:
  • 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的输出结果
阅读(3408) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~