私はここを参照しています
http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/jmx.html#jmx-proxy
localhost MBeanServer に接続し、Spring Proxy を使用して何らかの操作を実行しようとしています。問題は、ObjectName と ProxyInterface を指定するだけで、localhost に接続できません。MBeanProxyFactoryBean のサーバー プロパティを指定することで、この問題を解決できます。
ここに私の春がありますcontext.xml
bean id="proxyWithoutServer" class="org.springframework.jmx.access.MBeanProxyFactoryBean"
p:objectName="com.xxx.yyy"
p:proxyInterface="com.MyInterface"
bean id="proxyWithServer" class="org.springframework.jmx.access.MBeanProxyFactoryBean"
p:objectName="com.xxx.yyy"
p:proxyInterface="com.MyInterface"
p:server-ref="clientConnector"
<bean id="clientConnector" class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean"
p:serviceUrl="service:jmx:rmi://localhost/jndi/rmi://localhost:8001/jmxrmi" />
Java コードでは、単純に
MyInterface myInterface = context.getBean("proxyWithoutServer");
myInterface.myMethod();
しかし、これはうまくいきません。- localhost に接続できないと表示される
しかし、私が使用する場合
MyInterface myInterface = context.getBean("proxyWithServer");
myInterface.myMethod();
これは機能します。
ここでの問題は、このコードが複数のサーバーで実行され、それぞれの jmx ポートが異なることです。だから私はポート番号を指定したくないでしょう。したがって、これのproxyWithoutServerバージョンが機能することを望みます。spring jmx のドキュメントを見ると、ローカル MBean サーバーに接続しようとしている場合、サーバー ポートを指定する必要はないようです。ここで私が間違っていることについてアドバイスが必要です。
前もって感謝します