0

私はここを参照しています

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 サーバーに接続しようとしている場合、サーバー ポートを指定する必要はないようです。ここで私が間違っていることについてアドバイスが必要です。

前もって感謝します

4

1 に答える 1

2

MBeanServer へのローカル参照を作成します。

<context:mbean-server id="localMBeanServer"/>

次にlocalMBeanServer、p:server-ref で使用します。

于 2012-11-27T02:18:32.697 に答える