我目前使用Spring导出我的JMX bean并且对此非常满意。当在另一个容器(例如Jetty,Tomcat)上运行时,我可以使用JConsole或JVisualVM进行连接并访问我的MBean。
我尝试使用How do you enable JMX in WebSphere中的说明连接到WebSphere但没有成功。
是否有更简单的方法可以在WebSphere Application Server 7.0上运行的应用程序上访问JMX bean?
答案 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>