【jmx学习】2、jmx之Html Adaptor

一、jmx开发准备

下载地址:http://java.sun.com/products/JavaManagement/download.html

下载jmx-1_2_1-ri.zip(JMX 1.2.1 Reference Implementation) , 解压后的lib目录包含:jmxri.jar、jmxtools.jar

下载jmx_remote-1_0_1_03-ri.zip(JMX Remote API 1.0.1_04 Reference Implementation), 解压后的lib目录包含:jmxremote.jar、jmxremote_optional.jar、rmissl.jar

 
JDK5.0的jre\lib\rt.jar已经包含了jmxri.jar、jmxremote.jar、rmissl.jar三个包的代码。如果你用到jmxtools.jar、jmxremote_optional.jar的类,则需要将这两个类加入到classpath或Eclipse的项目库引用中。

二、开发



       1、定义一个MBean接口
package com.hy.demo.jmx;

public interface PersonMBean {
	
	public void setName(String name);
	
	public String getName();
	
	public void printName();
	
}
        2、创建MBean,实现MBean接口
package com.hy.demo.jmx;

public class Person implements PersonMBean {

	private String name;
	
	public Person(){
	};
	@Override
	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String getName() {
		return name;
	}
	@Override
	public void printName() {
		System.out.println("My name is " + name);
	}
}
        3、创建JMXServer并注册MBean
package com.hy.demo.jmx;

import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;

import com.sun.jdmk.comm.HtmlAdaptorServer;

public class HtmlAgent {

	public static void main(String[] args) throws Exception {
		 MBeanServer server = MBeanServerFactory.createMBeanServer();//创建MBeanServer
		 ObjectName helloName = new ObjectName("hy:name=Tom"); 
		 server.registerMBean(new Person(), helloName);//注册MBean到Server
		 ObjectName adapterName = new ObjectName("HtmlAgent:name=htmladapter,port=8082");
		 HtmlAdaptorServer adapter = new HtmlAdaptorServer();//需要引入jmxtools.jar      
		 server.registerMBean(adapter, adapterName);
	     adapter.start();        
	     System.out.println("start.....");
	}
}

运行结果:启动mian函数,运行 http://localhost:8082/


点击进入此MBean View界面

按照上图操作就可以在后台打出结果了


三、注意事项
        1、MBean接口的名称必须是×××MBean。
        2、MBean实现的名称是×××。
        3、MBean实现类必须有个public的构造函数。
        4、MBean接口和实现类必须在同一路径下

四、MBean类型
  1. 标准MBeans(Standard MBeans)设计和实现是最简单的,这类MBean使用自己的方法名作为管理接口;
  2. 动态MBeans(Dynamic MBeans)必须实现一个指定的接口,由于动态MBeans在运行期间暴露它们的管理接口,因此更为灵活;
  3. 开放MBeans(Open MBeans)属于动态MBeans,这类MBean依靠基础数据类型来实现通用管理,并为友情用户进行自我声明;
  4. 模型MBeans(Model MBeans)同样也是动态MBeans,这类MBeans是完全可配置的,在运行期间进行自我声明;它们为资源动态工具提供一个一般性的,有默认行为的MBeans类。


总结:创建MBean必须建一个同级的MBean接口,因为这是标准MBean的规范,要不就实现javax.management.DynamicMBean接口,这就变成了动态的MBean。实现的接口才能被远程客户端调用,标准MBean是最常用的,有时维护接口比较麻烦,可以用apache网站下载commons-modeler来开发JMX,用XML代替接口



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值