0

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

我已经尝试使用如何在 WebSphere 中启用 JMX 中的说明连接到 WebSphere ,但没有成功。

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

4

1 回答 1

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>
于 2011-04-20T14:41:16.477 回答