Apache CXFでビルドされたSOAP over JMS Webサービスをテストしていました。特に、私は"jms_specs_demo"に従っていました:消費者が必要とするコール、SOAPサービスの実装、およびメッセージ永続性に必要なキューを記述するWSDL-fistサンプル。消費者がMQメーカのライブラリを追加することなくSOAP/JMSサービスを作成できますか?
クライアントコールはSOAP over HTTP呼び出しと同じです(エンドポイントはWSDLファイルにあります)。しかし、JMS JNDIアドレスは、MQメーカーのライブラリ(org.apache.activemq.jndi.ActiveMQInitialContextFactory)を使用し、それはまた、クライアント上で必須です:私はそれをテストするための独立したクライアントを構築してい
<soap:address location="jms:jndi:dynamicQueues/test.cxf.jmstransport.queue?jndiInitialContextFactory=org.apache.activemq.jndi.ActiveMQInitialContextFactory&jndiConnectionFactoryName=ConnectionFactory&jndiURL=tcp://localhost:61616"/>
:
JMSGreeterService service = new JMSGreeterService();
JMSGreeterPortType greeter = service.getGreeterPort();
greeter.greetMeOneWay("hello World");
しかしApacheMQ依存関係が追加された場合効果的に、このコードは動作します:
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-broker</artifactId>
<version>5.13.3</version>
</dependency>
はMQを追加することなく、JMSサービスの上にSOAPを作成する方法はありますメーカーのライブラリ(JAR)は消費者にありますか?私は、JMS APIがトランスポートを管理し、メッセージを余分なライブラリなしでリモートキューにプッシュすると考えました。