我正在使用部署在 tomcat 服务器(我在本地运行)上的 WAR 文件来玩 spring 的 JMX 支持。然而,尽管遵循发布的指南,我无法将我的 MBean 专门部署到 tomcat 的 MBeanServer 实例。
我尝试了一些 MBeanExporter 和 MBeanServerFactoryBean 配置的变体,但似乎没有任何效果。这是我当前的配置:
<bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean">
<property name="serviceUrl" value="service:jmx:rmi:///jndi/rmi://localhost:6969/jmxrmi"/>
</bean>
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false">
<property name="server" ref="mbeanServer"/>
<property name="beans">
<map>
<entry key="domain:name=notifier" value-ref="mBeanNotifier"/>
</map>
</property>
</bean>
<bean id="mBeanNotifier" class="com.sei.poc.jmx.mbeans.SimpleMBeanNotifier"/>
我还在 tomcat 的配置中包含了以下参数:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=6969
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
我可以通过在 JConsole 中输入 localhost:6969 手动连接到 mbeanServer,但我只能找到本机 catalina MBean。当我深入研究这些 MBean 时,我什至找到了对我项目的引用,但不幸的是,我声明的 MBean 无处可寻。
我曾尝试删除 MBeanServerFactoryBean 声明,希望出口商能够自然地获取 tomcat 的 MBeanServer(没有运气)。我也尝试了服务 url 的不同变体,但没有成功。
我应该注意到我能够将 MBean 部署到我的本地 MBeanServer 并使用 JConsole 查看它们就好了。
任何关于问题可能是什么的建议将不胜感激。
谢谢!