JMX代码入门(一)

来源:互联网 发布:网络名片设计图片 编辑:程序博客网 时间:2024/05/21 19:44
package com.fanshadoop;/** *  * standard MBean是通过接口定义的,且接口名称的后缀为"MBean" * 1)get方法定义了MBean的成员变量是可读权限 * 2)set方法定义了MBean的成员变量是可写权限 */public interface HelloWorldMBean {public void setGreeting( String greeting );public String getGreeting();public void printGreeting();}package com.fanshadoop;public class HelloWorld implements HelloWorldMBean {private String greeting = null;public HelloWorld() {this.greeting = "Hello World! I am a Standard MBean";}public HelloWorld(String greeting) {this.greeting = greeting;}public void setGreeting(String greeting) {this.greeting = greeting;}public String getGreeting() {return greeting;}public void printGreeting() {System.out.println(greeting);}}
package com.fanshadoop;import javax.management.MBeanServer;import javax.management.MBeanServerFactory;import javax.management.ObjectName;import com.sun.jdmk.comm.HtmlAdaptorServer;/** * JMX agents是JMX代理层中的组件,是MBean的容器 * 1)创建了MBeanServer,MBean的容器 * 2)创建了HTML适配器,处理来自HTML客户端的链接 * 3)注册HelloWorld的实例 */public class HelloAgent {private MBeanServer mbs = null;public HelloAgent() {/* * MBean server是一个用来包含和管理JMX MBean的Java对象, * MBean server是一个标准的JMX类,它是JMX agents的核心。 * MBeanServerFactory可以管理多个MBeanSever实例 * 这里createMBeanServer方法的参数为一组MBean的domain,domain唯一区分其他的MBean server * 如果HelloAgent已经存在,则会已经创建的MBeansever */mbs = MBeanServerFactory.createMBeanServer("HelloAgent");/* *agent通过构造协议适配器和连接器,向管理application开放MBean  */HtmlAdaptorServer adapter = new HtmlAdaptorServer();HelloWorld hw = new HelloWorld();/* * ObjectName类为MBean提供了一个命名空间,它由两部分组成 * 1)domain name(与MBean server的domain一致) * 2)key=value属性列表,用来标识MBean,为MBean提供信息 * 可以提供诸如name,port,location和purpose等属性,属性以逗号分割,且key=value属性列表是唯一的 */ObjectName adapterName = null;ObjectName helloWorldName = null;try {helloWorldName = new ObjectName("HelloAgent:name=helloWorld1");mbs.registerMBean(hw, helloWorldName);adapterName = new ObjectName("HelloAgent:name=htmladapter,port=9092"); adapter.setPort( 9092 ); mbs.registerMBean( adapter, adapterName ); adapter.start();} catch (Exception e) {e.printStackTrace();}}public static void main(String args[]) {System.out.println("HelloAgent is running");HelloAgent agent = new HelloAgent();}}


原创粉丝点击