学习JMX的第一个例子就遇到了上面的这个异常。
javax.management.NotCompliantMBeanException: MBean class com.acme.osb.CachesService does not implement DynamicMBean, neither follows the Standard MBean conventions (javax.management.NotCompliantMBeanException: Class com.acme.osb.CachesService is not a JMX compliant Standard MBean) nor the MXBean conventions (javax.management.NotCompliantMBeanException: com.acme.osb.CachesService: Class com.acme.osb.CachesService is not a JMX compliant MXBean)
异常的说明就和这一样。
因为我写的是一个标准的MBean,所以要遵守创建规则。
我建了HelloWorld这个MBean,这个MBean就是实现了HelloWorldMBean这个接口。所以符合规范。
而真正的问题出在这里,这个类和接口没有放在同一个包中,所以出错了。下面是我找到的解答
the xxxMBean and the xxx class that implements the xxxMBean should also be in the same package.
就是这个原因。