1 现象

在运行标准 MBean 的示例时:

public class MBeanServerRegister {public static void main(String[] args) throws Exception {// 获取 MBean ServerMBeanServer platformMBeanServer = ManagementFactory.getPlatformMBeanServer();// 创建 MBeanCustomResource resource = new CustomResource();resource.addItem("item_1");resource.addItem("item_2");resource.addItem("item_3");// 注册ObjectName objectName = new ObjectName("com.common.example.jmx:type=CustomResource, name=CustomResourceMBean");platformMBeanServer.registerMBean(resource, objectName);// 防止退出while (true) {Thread.sleep(3000);System.out.println("[INFO] 休眠 3s ..............");}}
}

抛出如下异常:

Exception in thread "main" javax.management.NotCompliantMBeanException: MBean class com.common.example.jmx.CustomResource does not implement DynamicMBean, and neither follows the Standard MBean conventions (javax.management.NotCompliantMBeanException: Class com.common.example.jmx.CustomResource is not a JMX compliant Standard MBean) nor the MXBean conventions (javax.management.NotCompliantMBeanException: com.common.example.jmx.CustomResource: Class com.common.example.jmx.CustomResource is not a JMX compliant MXBean)at com.sun.jmx.mbeanserver.Introspector.checkCompliance(Introspector.java:176)at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:317)at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)at com.common.example.jmx.MBeanServerRegister.main(MBeanServerRegister.java:26)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

需要注意的是,标准 MBean 接口名称必需是在要监控的类名后面加上 MBean 后缀, 且要监控的类和 MBean 接口必需在同一包下。假设标准 MBean 接口名称为 ResourceMBean,那么实现 ResourceMBean 接口的实现类必须为 Resource:

public class Resource implements ResourceMBean {...
}

而此时我们的实现类名称为 CustomResource,所以抛出异常。

JMX MBean class xxx does not implement DynamicMBean, and neither follows the Standard MBean conventi相关推荐

  1. 从零开始玩转JMX(一)——简介和Standard MBean

    JMX的全称为Java Management Extensions. 顾名思义,是管理Java的一种扩展.这种机制可以方便的管理.监控正在运行中的Java程序.常用于管理线程,内存,日志Level,服 ...

  2. JMX : Standard MBean

    Standard MBean由一个接口和一个实现类组成. 命名规范 : 接口 : XXXMBean 实现类 : XXX 按照约定,MBean的name为XXX.自定. 接口中的每个方法定义了一个att ...

  3. Serialized class com.xxx.xxxService must implement java.io.Serializable

    大家好,我是烤鸭: 使用dubbo的时候,遇到如下的问题.     Serialized class com.xxx.xxxService must implement java.io.Seriali ...

  4. golang 错误: cannot use XXX literal (type XXX) as type XXX in assignment:XXX does not implement XXX

    出错代码如下: package mainimport ("fmt" )type Speaker interface {Hello() }type User struct {Name ...

  5. jmx使用应该注意的基本规范

    1.标准MBean 名称必需是在要监控的类名后面加上"MBean ". 2.监控的类和MBean 接口必需在同一包下,也可以理解为注册的接口名字必须以MBean结尾,接口实现类比接 ...

  6. Java中JMX管理器的作用,项目中有什么具体使用?

    作者:wuxinliulei 链接:https://www.zhihu.com/question/36688387/answer/68667704 来源:知乎 著作权归作者所有.商业转载请联系作者获得 ...

  7. 【Java】java jmx 入门案例

    1.概述 JMX的全称为Java Management Extensions,是管理Java的一种扩展.这种机制可以方便的管理正在运行中的Java程序.常用于管理线程,内存,日志Level,服务重启, ...

  8. JMX超详细解读(转)

    转自:https://www.cnblogs.com/dongguacai/p/5900507.html 一.JMX的定义 JMX(Java Management Extensions)是一个为应用程 ...

  9. 测试开发进阶——常用中间件概念——JMX监听器理解

    JMX的简介 JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架 ,从Java5.0开始引入到标准Java技术平台中. JMX是一套标准的代理和服务,实际 ...

  10. 从零开始玩转JMX(四)——Apache Commons Modeler Dynamic MBean

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

最新文章

  1. SortedMap接口
  2. TensorFlow 最小二乘法拟合
  3. SpringCloud教程- 服务消费者(Feign)(SpringCloud版本Finchley)
  4. ubuntu系统中samba服务器搭建
  5. 4.无监督学习--K-means聚类
  6. Mybatis select元素返回List
  7. 面试必谈的哈希,.Net 程序员温故而知新
  8. Qt文档阅读笔记-QML RotationAnimation官方解析及实例
  9. 吊炸天的 Kafka 图形化工具 Eagle,必须推荐给你!
  10. 许家印砸1000亿布局AI、量子计算等领域,但在科技圈只能算轻壕
  11. python工作技巧_4个基本的 Python 技巧让你的工作流程自动化
  12. VisualGDB系列10:快速调试Linux应用程序
  13. man命令的使用方法
  14. VC++6.0环境下调试c语言代码的方法和步骤_附图
  15. python实现视频剪切与拼接
  16. vs2015调试iisexpress无法启动的问题解决方案整理
  17. CRM 安装不规范,亲人两行泪
  18. 盛年不重来、一日难再晨
  19. 微信api接口调用-发朋友圈
  20. 我与学霸的距离计算机,你与学霸的距离,可能就差本笔记

热门文章

  1. css3揭秘读书笔记--边框内圆角
  2. easybcd卸载linux系统,Windows 8.1和Ubuntu 14.04双系统卸载Ubuntu参考教程
  3. iOS开发捷径学习(一)
  4. 无刷直流电机构成及工作原理详解
  5. Unicode中的数学符号
  6. indexOf的用法
  7. 工控机上位机软件的开发历程(二)
  8. 联想服务器光驱安装win7系统,联想光盘安装win7系统教程
  9. 开源跨平台2D游戏引擎Love2D介绍
  10. #Linux中的GCC编程# 20170731 C培训作业