Servicemix 4.5.3 を使用しており、コンシューマー エンドポイントをインスタンス 1 の (HTTP BC) にデプロイし、プロバイダー エンドポイントをインスタンス 2 の (HTTP BC) にデプロイし、両方のインスタンスをブローカーのネットワークで相互接続しています。
コンシューマ エンドポイントを呼び出すと、次のエラーが表示されます:
org.apache.servicemix.nmr.api.ServiceMixException
: 交換をディスパッチできませんでした。一致するエンドポイントがありません。
プロバイダーとコンシューマーのエンドポイントのクラスタリングを有効にしていないので、これで問題ありません。
エンドポイントのクラスタリングを有効にするために、このリンクをたどっています http://fusesource.com/docs/esb/4.2/jbi/ESBJBICluster.html
2 つの質問があります。1) 両方のエンド ポイントのクラスタリングを有効にすると、ターゲット エンド ポイント (つまり、プロバイダー エンド ポイント) が解決されますか?
2) インスタンス 1 にコンシューマー サービス ユニットをデプロイしようとすると、以下のエラーが発生します。xbean 構成に何か問題がありますか? このエラーの原因を知っている人はいますか?
ありがとう、アルン
PS: これはコンシューマ SU 内の私の xbean.xml です。
<http:soap-consumer service="tx:httpSoapConsumer"
endpoint="TaxiProviderHttpSoapConsumerEndpoint"
locationURI="http://localhost:8163/httpSoapConsumer/TaxiProviderHttpSoapConsumerEndpoint"
targetService="tx:httpSoapProvider"
targetEndpoint="httpSoapProviderEndpoint" wsdl="classpath:service.wsdl"
useJbiWrapper="false"
/>
<bean class="org.apache.servicemix.jbi.cluster.engine.OsgiSimpleClusterRegistration">
<property name="name" value="c1" />
<property name="serviceName" value="tx:httpSoapConsumer" />
<property name="endpointName" value="TaxiProviderHttpSoapConsumerEndpoint" />
</bean>
</beans>
エラー:
`<stack-trace><![CDATA[org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.servicemix.jbi.cluster.engine.OsgiSimpleClusterRegistration#0' defined in file [/home/ubuntu/ProductionEnvironment/MultiInstanceESB/Test1/data/jbi/aruntest.http.Consumer.endpoint.sa/sus/aruntest.http.consumer.endpoint/xbean.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException
Caused by: java.lang.NullPointerException
at org.apache.servicemix.jbi.cluster.engine.OsgiSimpleClusterRegistration.afterPropertiesSet(OsgiSimpleClusterRegistration.java:43)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethod
This is the line causing the Exception: (OsgiSimpleClusterRegistration.java:43)
serviceRegistration = bundleContext.registerService(ClusterRegistration.class.getName(), this, new Properties());