プロキシを介した MBean へのアクセス
Spring JMX を使用すると、ローカルまたはリモート MBeanServer
に登録されている MBean に呼び出しを再ルーティングするプロキシを作成できます。これらのプロキシは、MBean とやり取りできる標準の Java インターフェースを提供します。次のコードは、ローカル MBeanServer
で実行されている MBean のプロキシを構成する方法を示しています。
<bean id="proxy" class="org.springframework.jmx.access.MBeanProxyFactoryBean">
<property name="objectName" value="bean:name=testBean"/>
<property name="proxyInterface" value="org.springframework.jmx.IJmxTestBean"/>
</bean>
上記の例では、bean:name=testBean
の ObjectName
に登録された MBean に対してプロキシが作成されていることがわかります。プロキシが実装するインターフェースのセットは proxyInterfaces
プロパティによって制御され、これらのインターフェースのメソッドとプロパティを MBean の操作と属性にマッピングするルールは、InterfaceBasedMBeanInfoAssembler
で使用されるルールと同じです。
MBeanProxyFactoryBean
は、MBeanServerConnection
を介してアクセス可能な任意の MBean へのプロキシを作成できます。デフォルトでは、ローカル MBeanServer
が検索および使用されますが、これをオーバーライドして、リモート MBeans を指すプロキシに対応するためにリモート MBeanServer
を指す MBeanServerConnection
を提供できます。
<bean id="clientConnector"
class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean">
<property name="serviceUrl" value="service:jmx:rmi://remotehost:9875"/>
</bean>
<bean id="proxy" class="org.springframework.jmx.access.MBeanProxyFactoryBean">
<property name="objectName" value="bean:name=testBean"/>
<property name="proxyInterface" value="org.springframework.jmx.IJmxTestBean"/>
<property name="server" ref="clientConnector"/>
</bean>
前の例では、MBeanServerConnectionFactoryBean
を使用するリモートマシンを指す MBeanServerConnection
を作成します。この MBeanServerConnection
は、server
プロパティを介して MBeanProxyFactoryBean
に渡されます。作成されたプロキシは、この MBeanServerConnection
を介してすべての呼び出しを MBeanServer
に転送します。