Spring 3.2.3 MBeanExporter不支持bean属性

时间:2017-07-11 09:23:53

标签: java spring spring-jmx

我通过Spring MBeanExporter导出了一个bean,这个bean实现了NotificationEmitter,其行为就像是NotificationBroadcasterSupport。所以它设置了方法public MBeanNotificationInfo [] getNotificationInfo(),返回一个MBeanNotificationInfo []的静态实例,它保存了自己的notifTypes,只注释了一个字符串点。通过jconsole来看看这个bean,而不是配置的notifTypes,我看到了:

ModelMBeanNotificationInfo: GENERIC ... Types: jmx.modelmbean.generic
ModelMBeanNotificationInfo: ATTRIBUTE_CHANGE ... Types: jmx.attribute.change

另外,如果我通过jconsole订阅notificatios,我从未看到已调用addNotificationListener实现的方法。 通过debug查看bean代码,我从未看到任何调用的NotificationEmitter方法。虽然该bean的所有其他方法都按预期运行。 MBeanExporter做这个数字是什么意思?

1 个答案:

答案 0 :(得分:0)

设置 MBeanExporter bean的属性汇编程序时出现问题,特别是设置汇编程序的属性 interfaceMappings >。如果添加到 MBeanExporter 的bean的类名和汇编程序中的接口名不算数,则规则interfaceName = className +" MBean&#34 ;创建一个实现 NotificationEmitter 的新MBean,并将其注册到MBeanServer中。遵循上述规则,将注册随 MBeanExporter 提供的bean 这是因为在注册时 MBeanServer ,检查上面的规则并在发现mimatch时抛出 NotCompliantMBeanException

相关问题