【发布时间】:2017-07-11 09:23:53
【问题描述】:
我通过 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 订阅通知,我永远不会看到 addNotificationListener 实现的方法已被调用。 通过调试查看 bean 代码,我从未看到调用过任何 NotificationEmitter 方法。虽然该 bean 的所有其他方法都按预期运行。 MBeanExporter 这个图是做什么的?
【问题讨论】:
标签: java spring spring-jmx