免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3908 | 回复: 0
打印 上一主题 下一主题

JMX简单实例 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-06 09:55 |只看该作者 |倒序浏览
二、简单实例
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
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP