2013-05-08 79 views
0

我正在向OC4J部署一個彈簧應用程序,但遇到一個奇怪的問題,我可以訪問公開的mbeans,但只能使用屬性和操作。這些通知可以在標籤下看到,但是沒有使用,因爲應該有一個帶有應用按鈕的複選框來訂閱。這是不存在的,而只是false的布爾值,表明我絕對沒有訂閱該通知。Spring JMX和OC4J MBean通知無法啓用

這裏是我用來註冊的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通知的組合,謝謝!

回答

0

這是spring配置文件中mbeanserver的問題。

<bean id="mbeanserver" class="org.springframework.jmx.support.MBeanServerFactoryBean"> 
    <property name="locateExistingServerIfPossible" value="false" /> 
</bean> 

解決問題