在Websphere 7.0上访问Spring导出的JMX bean的最简单方法

时间:2011-04-20 07:10:12

标签: spring websphere jmx websphere-7

我目前使用Spring导出我的JMX bean并且对此非常满意。当在另一个容器(例如Jetty,Tomcat)上运行时,我可以使用JConsole或JVisualVM进行连接并访问我的MBean。

我尝试使用How do you enable JMX in WebSphere中的说明连接到WebSphere但没有成功。

是否有更简单的方法可以在WebSphere Application Server 7.0上运行的应用程序上访问JMX bean?

1 个答案:

答案 0 :(得分:1)

不确定 是否 连接到WebSphere7 JMX,或者您 可以 连接但是看不到导出MBean。如果是后者,我怀疑你可能正在查看错误的MBeanServer实例,因为WAS在技术上有多个运行。

无论哪种方式,要绕过所有废话,最好的办法是在Spring XML中添加JMXConnectorServer定义。这样,您就可以精确地控制JMX连接的方式,并且它将使用标准的J2SE RMI远程处理,因此您知道JConsole将轻松连接到它。

以下是一个例子:

<bean id="MBeanServer"
    class="org.helios.jmx.util.MBeanServerFactory" lazy-init="false" factory-method="createMBeanServer">
    <constructor-arg type="java.lang.String" value="DefaultDomain" />
</bean>

<bean id="MBeanServerJMXUrl"
    class="javax.management.remote.JMXServiceURL" lazy-init="false">
    <constructor-arg type="java.lang.String" value="service:jmx:rmi:///jndi/rmi://localhost:8003/jmxrmi" />
</bean>

<bean id="RMIRegistry"
    class="java.rmi.registry.LocateRegistry" 
        lazy-init="false" 
        factory-method="createRegistry">
    <constructor-arg value="8003" />
</bean>


<bean id="MBeanServerConnector"
    class="javax.management.remote.JMXConnectorServerFactory" 
        lazy-init="false" 
        init-method="start"
        factory-method="newJMXConnectorServer"
        depends-on="RMIRegistry">
    <constructor-arg ref="MBeanServerJMXUrl" />
    <constructor-arg>
        <map/>
    </constructor-arg>
    <constructor-arg ref="MBeanServer" />
</bean>
相关问题