昨日この問題に遭遇しましたが、なんとか解決しました。私はそれに時間を費やしているので、この投稿は他の人の時間を節約するのに役立つと思いました.
最初に、メイン メソッドの投稿に記載されているように、Java コードに Bean を登録できます。しかし、Spring を使えばもっと簡単だと思います。
詳細については、このリンクを参照してください。http://static.springsource.org/spring/docs/2.0.x/reference/jmx.html
回避する必要がある抜け穴がいくつかあります。アプリケーションで 2 つの MBean サーバーを起動しないでください。
この構成ファイルを使用しました:
<bean id="mbeanExporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false">
<property name="beans">
<map>
<entry key="bean:name=beanName" value-ref="dataSource"/>
</map>
</property>
<property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING"/>
</bean>
この構成を使用して、Bean 名を MBeanExporter にアタッチします。「lazy-init」が false に設定されていることを確認してください。この構成を Web アプリケーションで使用していることに注意してください。Web アプリケーションは tomcat 内にデプロイされます。したがって、Tomcat には既に MBean サーバーがあります。したがって、明示的に指定する必要はありません。スタンドアロン モードで実行している場合は、MBean サーバーを起動し、それに応じて構成する必要があります。
Tomcat の catalina.bat ファイル内に次のプロパティを追加する必要があることにも注意してください。CATALINA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8088 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom を設定します。 sun.management.jmxremote.hostname="localhost"
この場合の Jmx コネクタ ポートは 8088 で、ホスト名は「localhost」です。Tomcat を起動したら、jconsole を起動する必要があります (起動方法はここでは説明しません)。次に、「RemoteProcess」をクリックし、「localhost:8088」と入力します。 tomcat の MBean サーバーに接続します。次に、jconsole の MBean タブに移動すると、そこに MBean が表示されます。