博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javax.management.NotCompliantMBeanException: MBean class com.jmx.JmxMbeanRea does not implement
阅读量:2445 次
发布时间:2019-05-10

本文共 2672 字,大约阅读时间需要 8 分钟。

错误原因:MBean命名错误,详细请看下面:

Caused by: javax.management.NotCompliantMBeanException: Class does not expose a management interface: java.lang.Object

      at org.jboss.mx.metadata.MBeanCapability.of(MBeanCapability.java:102)

      at org.jboss.mx.metadata.MBeanCapability.of(MBeanCapability.java:100)

      at org.jboss.mx.metadata.MBeanCapability.of(MBeanCapability.java:100)

      at org.jboss.mx.metadata.MBeanCapability.of(MBeanCapability.java:100)

      at org.jboss.mx.server.registry.BasicMBeanRegistry.registerMBean(BasicMBeanRegistry.java:182)

      at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

      at java.lang.reflect.Method.invoke(Method.java:597)

      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)

      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)

      at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)

      at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)

      at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)

      at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)

      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)

      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)

      at org.jboss.mx.server.MBeanServerImpl$3.run(MBeanServerImpl.java:1422)

      at java.security.AccessController.doPrivileged(Native Method)

      at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:1417)

      at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:1350)

      at org.jboss.mx.server.MBeanServerImpl.createMBean(MBeanServerImpl.java:345)

      at org.jboss.system.ServiceCreator.install(ServiceCreator.java:157)

      at org.jboss.system.ServiceConfigurator.internalInstall(ServiceConfigurator.java:451)

      at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:171)

      ... 81 more

 

几个人查了良久,试了能想到的一切方法,仍不得解。网上Google,Interface和实现必须放在同一个包内,改,再部署,仍报错。同事提了一句是不是要改成Sar包,改,再部署,仍旧报错。MBean命名有要求,实现类名必须是接口名去掉MBean,改,再部署,还是错措错!!!最后大家都已头昏眼花,不得不暂时作罢,次日再战。

今日一早起来,略读了《Java Management Extension》,书中 2.2.1节 Describing the Management Interface 正好讲到了NotCompliantMBeanException。遂一一对照,检查代码。

2.2.1.1 Pattern #1: Defining, naming, and implementing the MBean interface 

接口必须定义成Public的。

public interface QueueMBean { 

// management interface goes here. . . 
}

实现类必须implements 接口的同时,名字也是大有讲究。假如接口名叫 XYZMBean ,那么实现名就必须一定是XYZ,而且是大小写敏感的。真是差之毫厘谬以NotCompliant。

public class Queue implements QueueMBean { 

// implementation of QueueMBean 
// and other stuff here. . . 
}

再仔细一瞅同事的代码,顿悟。接口名去掉MBean后和实现类名差那么一个字母,怎么昨天我们三个人都没有看出来呢?把名字一改,再部署,OK了。

转载地址:http://kfxqb.baihongyu.com/

你可能感兴趣的文章
畅谈理想未来为主题的铅笔画_与专家畅谈Node.js
查看>>
SitePoint Podcast#173:释放混乱的猴子
查看>>
php 查询成绩_与专家讨论PHP: 成绩单
查看>>
一年新的一年_一年的云创新
查看>>
使用PHP从Access数据库中提取对象,第2部分
查看>>
openbiz_Openbiz Cubi:健壮PHP应用程序框架,第1部分
查看>>
使用PHP从Access数据库中提取对象,第1部分
查看>>
使用云waf的案例_9种流行的云使用案例
查看>>
类集合转换类集合_PHP中的集合类
查看>>
使用SimplePie消费Feed
查看>>
运算符二进制_基本转换和二进制运算符
查看>>
SitePoint播客#121:在线社区圆桌会议第2部分
查看>>
pchart_用pChart绘制图表
查看>>
Git简介,第1部分
查看>>
微信 获取地理位置名称_使用地理名称的目标地理位置
查看>>
graph api_与Facebook Graph API集成
查看>>
本地应用程序_本地化PHP应用程序的“正确方法”,第4部分
查看>>
SitePoint播客#80:与澳大利亚团队的FullCodePress
查看>>
用Wufoo创建简单表单:开发人员的观点
查看>>
heroku_使用Heroku和Facebook SDK在云中构建您的应用
查看>>