我正在将一个 spring 应用程序部署到 OC4J,但是一直遇到一个奇怪的问题,即我可以访问暴露的 mbean,但只能使用属性和操作。通知可以在选项卡下看到,但没有使用,因为应该有一个带有应用按钮的复选框来订阅。这不存在,而只是布尔值 false 表明我绝对没有订阅该通知。
这是我用来注册 mbean 的 spring 配置:
<bean id="test" class="com.app.jmx.HomeController"/>
<bean id="MbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean">
<property name="defaultDomain" value="MbeanServer" />
</bean>
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="autodetect" value="false" />
<property name="server" ref="MbeanServer" />
<property name="beans">
<map>
<entry key=":name=test" value-ref="test" />
</map>
</property>
</bean>
这是用于创建通知的代码
private String notifications[] = { "increment", "decrement", "reset",
"test" };
public MBeanNotificationInfo[] getNotificationInfo() {
MBeanNotificationInfo[] info = { new MBeanNotificationInfo(
notifications, "javax.management.Notification",
"Notifications set for SimpleNotifier") };
return info;
}
可以在这里找到一个没有弹簧的工作示例 http://www.oracle.com/technetwork/middleware/ias/readme-087860.html
对此的任何帮助将不胜感激,因为我在网上找到的关于 Spring、jmx 和 oc4j 与 jmx 通知组合的资源非常有限,谢谢!