0

MessageHandler エンドポイントにアクセスして、JMX 経由でサービスを開始および停止しようとしています。コンテキスト ファイルに以下の構成があります。JConsole を介して開始/停止メソッドにアクセスできます。

Spring ベースのクライアントから MBeanServerConnectionFactoryBean を使用してエンドポイントにアクセスすることもできます。

ここで、Bean がローカルであるかのようにメソッドを直接呼び出すことができるように、MBeanProxyFactoryBean を使用してエンドポイントにアクセスしたいと考えています。これはうまくいかないようです。

以下の私の構成を見て、何が間違っているか、またはさらに何をする必要があるかを提案してもらえますか?

サーバー.xml

    <int-jms:message-driven-channel-adapter id="jmsIn" 
    connection-factory="connectionFactory" concurrent-consumers="3" max-concurrent-consumers="5" 
    destination-name="emsQueue" acknowledge="transacted" channel="jmsInChannel"  
    extract-payload="false" />

 <integration:service-activator id="serviceAct" input-channel="jmsInChannel" output-channel="fileNamesChannel" 
    ref="handler" method="process" />

クライアント.xml

<bean id="mBeanServerClient" class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean">
    <property name="serviceUrl" value="service:jmx:rmi:///jndi/rmi://localhost:9004/jmxrmi" />
</bean>

<bean id="jmxClient" class="com.abc.test.IBalJMXClient">
    <property name="connection" ref="mBeanServerClient" />
</bean>
<bean id="remoteJMSMBean" class="org.springframework.jmx.access.MBeanProxyFactoryBean">
    <property name="objectName" value="com.abc.test:name=serviceAct" />
    <property name="server" ref="mBeanServerClient" />
    <property name="proxyInterface" value="com.abc.client.intf.IBalJMSController" />
</bean>

IBalJMSController は、任意のクラスからアクセスできるように、 start() 、 stop() 、および isRunning() メソッドを定義したインターフェイスです。

テストしようとすると、呼び出し例外が発生します。どんな提案でも大歓迎です

4

1 に答える 1