一、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(){};@Overridepublic void setName(String name) {this.name = name;}@Overridepublic String getName() {return name;}@Overridepublic 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();//创建MBeanServerObjectName helloName = new ObjectName("hy:name=Tom"); server.registerMBean(new Person(), helloName);//注册MBean到ServerObjectName 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代替接口

【jmx学习】2、jmx之Html Adaptor相关推荐

  1. JMX学习笔记(一)-MBean

    JMX学习笔记(一)-MBean 标签: jmxstringjavainterfaceexceptionclass 2010-12-07 22:20 15360人阅读 评论(5) 收藏 举报  分类: ...

  2. JMX学习笔记(四) JMX RMI

    连接器概念: JMX规范定义了连接器的概念(Connectors),连接器位于JMX的3层构架中的分布式服务层.连接器负责建立MBean服务器和管理应用之间的通信.连接器由一个驻留在代理层的连接器服务 ...

  3. jmx客户端_Java JMX客户端示例– JMX身份验证

    jmx客户端 In last tutorial we learned about JMX Basics and how can we use JConsole to manage MBeans. To ...

  4. java jmx jboss_jboss中JMX的连接与Mbean的获取

    给出一个例程吧 (1)它需要Jboss的jbossall-client.jar包的支持 (2)运行环境为Jboss3.2.6 + jdk5.0 + eclipse3.2M2.jdk5.0内置了JMX支 ...

  5. java jmx 配置_Java JMX远程调优一点就通

    原标题:Java JMX远程调优一点就通 java远程调优可采用两种方式进行连接,jmx与jstatd,此文演示如何配置jmx进行连接调优. 配置指南 配置 功能 值 备注 -Dcom.sun.man ...

  6. 【kafka】kafka 脚本 kafka-run-class.sh 使用介绍 jmx监控 查看jmx信息

    文章目录 1.概述 2.Consumer Offset Checker 3.Dump Log Segment 4.导出Zookeeper中Group相关的偏移量 5.通过JMX获取metrics信息 ...

  7. java 配置jmx 参数_tomcat jmx配置

    tomcat jmx 配置 注意:建议配置rmi.port端口,因为如果不配置,在控制端口请求连接后,被监控服务器会随机分配一个端口用于通信,在网络环境环境存在访问控制,安全策略的情况下,就会连接失败 ...

  8. linux系统设置JMX身份认证,JMX监控权限认证配置

    JMX( 启动JMX监控,在启动java程序的时候最少需要在环境变量里面配置以下的选项: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmx ...

  9. 【jmx】java jmx 获取 kafka topic的logStart LogEnd信息

    1. 概述 因为要展示kafka topic的 start offset和end offset ,最开始的方案是使用构建消费者,然后使用 consumer.seekToEnd(topicPar);和c ...

最新文章

  1. 易观的大数据中台之路
  2. 取消显示fps的指令_机器人控制指令介绍(一)
  3. python selenium对浏览器自动截图
  4. linux下如何产生core,调试core
  5. Markdown 基础语法与常见问题总结
  6. [渝粤教育] 广东-国家-开放大学 21秋期末考试财务会计(二)10165k2
  7. ionic platform add ios, Error:spawn EACCES
  8. Jasperreports TextField自动换行
  9. InputStreamReader
  10. windows服务器远程端口,查看和修改Windows服务器远程桌面的默认端口
  11. [UE5] 部署 Rider For Unreal Engine 编辑器
  12. Facebook想要成为下一个微信,难!
  13. 尚医通——后台搭建——MybatisPlus自动填充和乐观锁
  14. 纯干货:优秀程序员和普通程序员的差距就在这7个关键点
  15. CLR,CTS,CLS
  16. redis的nodejs客户端ioredis初识
  17. 读SQL进阶教程笔记12_地址与三值逻辑
  18. 微信小程序控制低功耗蓝牙
  19. fffffffffffff
  20. 100行matlab,中国大学MOOC: Matlab中可以产生100行100列元素全是1的正确的命令是() 答案:ones(100)...

热门文章

  1. Linux系统日志管理(redhat)
  2. 双机热备(双主模式)——实现数据库的高可用
  3. jquery 如何使用innerHTML
  4. 如何在服务器开启PathInfo
  5. 如何判断运行中的代码是调试模式(debug),还是运行模式
  6. ExtJS初级教程之ExtJS Tree(三)
  7. 跟着b站大学学习C语言--哔哩大学计算机学院
  8. sql sa 账号被锁定的解决办法
  9. Springboot 整合Websocket+Stomp协议+RabbitMQ做消息代理 实例教程
  10. Windows下运行XServer,XServer和XClient