1

ポート 8080 で実行されている Web サーバーとして Embedded Jetty を使用しており、Jconsole でアプリケーションを監視したいと考えています。JMX に固有の Jetty サーバーを起動するときに、次のシステム プロパティを使用しています。

-Dcom.sun.management.jmxremote.access.file=jmxremote.access  
-Dcom.sun.management.jmxremote.password.file=jmxremote.password   
-Dcom.sun.management.jmxremote   
-Dcom.sun.management.jmxremote.authenticate=true   
-Dcom.sun.management.jmxremote.ssl=false   
-Dcom.sun.management.jmxremote.port=8081  

JMX と Web サーバーは 2 つの異なるポートで実行されていますが、クライアントがポート 8080 を使用して Jconsole/JvisualVM 経由で JMX にアクセスする方法はありますか? とにかくJMXプロキシは私を助けるつもりですか? どんな方法でも可能ですか?

前もって感謝します。

アジェイ

4

2 に答える 2

1

努力なしではありません。簡単に言えば、1 つのポートには常に 1 つのサーバーしか存在できません (またはその逆: サーバーはポートを共有できません)。

JMX が HTTP 要求をサポートしている場合は、同じ HTTP サーバー上でサーブレットとして実行できます。1 つのポート (HTTP サーバーによって使用される) があり、HTTP URL を使用して、クライアントが JMX と通信するか、Web アプリケーションと通信するかをサーバーが判断できます。

しかし、JMX は HTTP リクエストを直接サポートしていません。Jolokia (この質問を参照)を試すか、クライアントが特定の mbeans をクエリできるようにするサーブレットを作成できます (ただし、JMX プロトコルは使用しません)。

于 2013-08-20T12:29:55.903 に答える