Java Spring 3.2.3 MBeanExporter不';荣誉豆财产

Java Spring 3.2.3 MBeanExporter不';荣誉豆财产,java,spring,spring-jmx,Java,Spring,Spring Jmx,我通过SpringMBeanExporter导出了一个bean,这个bean实现了NotificationEmitter,其行为就像一个NotificationBroadcasterSupport。因此,它显示了方法public MBeanNotificationInfo[]getNotificationInfo(),返回一个MBeanNotificationInfo[]的静态实例,该实例包含自己的NotifType,仅一个带点注释的字符串。通过jconsole查看这个bean,而不是配置的no

我通过SpringMBeanExporter导出了一个bean,这个bean实现了NotificationEmitter,其行为就像一个NotificationBroadcasterSupport。因此,它显示了方法public MBeanNotificationInfo[]getNotificationInfo(),返回一个MBeanNotificationInfo[]的静态实例,该实例包含自己的NotifType,仅一个带点注释的字符串。通过jconsole查看这个bean,而不是配置的notifTypes,我看到:

ModelMBeanNotificationInfo: GENERIC ... Types: jmx.modelmbean.generic
ModelMBeanNotificationInfo: ATTRIBUTE_CHANGE ... Types: jmx.attribute.change
另外,如果我通过jconsole订阅NotificationOS,我永远不会看到调用了addNotificationListener实现的方法。 通过调试查看bean代码,我从未看到调用任何NotificationEmitter方法。而该bean的所有其他方法的行为与预期一致。
MBeanExporter在这个图中做了什么?

设置MBeanExporter bean的属性assembler会出现问题,特别是设置assembler的属性interfaceMappings。如果添加到MBeanExporter的bean的类名和汇编器中的接口名不符合规则interfaceName=className+“MBean”,将创建一个实现NotificationEmitter的新MBean,并将其注册到MBeanServer中。按照上述规则,将注册随MBeanExporter提供的bean。
这是因为MBeanServer在注册时,检查上述规则,如果发现mimatch,则抛出NotCompliantMBeanException