JMX bean在一个应用程序中,有多个webapps部署到JBoss 5.0.1 GA

时间:2014-03-28 14:15:33

标签: spring jboss jmx

我正在尝试为一个JavaEE应用中的2个webapps使用的bean配置JMX管理。该应用程序部署到JBoss 5.0.1 GA。这是我的JMX配置

             

<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false">
    <property name="beans">
        <map>
            <entry key="bean:name=myJMXBean"
                   value-ref="myService"/>
        </map>
    </property>
    <property name="assembler">
        <bean class="org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler">
            <property name="managedInterfaces">
                <value>
                    com.me.MyServiceJMXInterface
                </value>
            </property>
        </bean>
    </property>
    <property name="server" ref="mBeanServer"/>      
</bean>

一开始,我收到了像MBean bean这样的错误:name = myJMXBean已经注册了。想想它必须是在我的应用程序中的2个webapps中注册的MBean。然后我将以下行添加到bean导出器

错误消失了。但是,如果我尝试使用JConsole访问MBean并更改值,那么我可以知道哪个myService实例是未知的。它必须是许多人以前看到的明确定义的问题。有人可以说明我能做到这一点吗?

希望我说清楚。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

可能对你有帮助的两件事。

  1. 您要注册的MBean的名称必须是唯一的。
  2. 当您的应用关闭或重新启动时,您必须取消注册MBean 。我得到了很多这些&#34;已经注册的bean&#34;问题是我在应用程序关闭时从未使用回调方法取消注册。