私は、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に手動で接続できますが、ネイティブのカタリナMBeanしか見つかりません。それらのMBeanを掘り下げると、自分のプロジェクトへの参照さえ見つかりますが、残念ながら、私が宣言するMBeanはどこにも見つかりません。
エクスポータがtomcatのMBeanServerを自然に(運がなくても)取得できるようになることを期待して、MBeanServerFactoryBean宣言を削除しようとしました。サービスURLのさまざまなバリエーションも試しましたが、成功しませんでした。
MBeanをローカルのMBeanServerにデプロイし、JConsoleで問題なく表示できることに注意してください。
問題が何であるかについての提案は大歓迎です。
ありがとう!