0

wsdl を見ているsoap:address locationと、値が のタグが含まれていますjms:/queue?destination=...

  • soap:addressWSDLでの値の使用は何ですか?
  • クライアントが Web サービスに接続する方法に影響しますか?

また、Google で検索しようとしたところjms:/queue?destination=...、「SOAP over JMS」という用語が結果に表示されました。

  • 「JMS」および「SOAP over JMS」とは何ですか?

私はクライアント側で仕事をしているので、何か対策が必要なのか心配です。現在、REST および SOAP Web サービスに 経由で接続する方法しか知りませんHttpUrlConnection

以下は WSDL ファイルのサンプルです: (以下に示すように、使用されているトランスポート プロトコルは HTTP ですが、サービスは JMS アドレスでもそれを使用していますか? ここで少し混乱しています。これは SOAP over HTTP ですか、それとも SOAP ですか? JMS 経由?)

<wsdl:binding name="MethodSOAP_JMS_Binding" type="tns:MethodPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
    <wsdl:operation name="methodName">
        <soap:operation soapAction="" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
        <wsdl:input name="method_Input">
            <soap:body parts="RequestBean" use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
        </wsdl:input>
        <wsdl:output name="method_Output">
            <soap:body parts="ResponseBean" use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
        </wsdl:output>
    </wsdl:operation>
</wsdl:binding>

<wsdl:service name="MethodSOAP_JMS_Service">
    <wsdl:port binding="tns:MethodSOAP_JMS_Binding" name="MethodSOAPPort">
        <soap:address location="jms:/queue?..." xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
    </wsdl:port>
</wsdl:service>

ありがとうございます!

4

2 に答える 2

4

JMS (Java Message Service) は、システム間で信頼できるメッセージを送信するための Java 標準です。メッセージは、HTTP のようにシステム間で直接送信されることはなく、JMS 準拠のサーバー ソフトウェアによって保存および転送されます。JMS メッセージはいくつかのヘッダーとさまざまなタイプのペイロードですが、SOAP は XML ベースであるため、SOAP の場合は文字列ペイロードである可能性が最も高くなります。

JMS URL は、HTTP URL ほど「自立的」ではありません。

このように:

jms:///queue?connectionfactory=MyQCF&destination=MyQ

MyQCF と呼ばれるいわゆる Connection Factory と MyQ と呼ばれる宛先に接続する必要があると書かれています。これが正確に意味することは、他の場所で構成する必要があり、特定の物理サーバーなどについては何も述べていません。JMS サーバーへの接続をセットアップする最も一般的な方法は、JNDI と呼ばれる構成ファイルまたはレジスタを使用するため、これは JMS では一般的です。その構成では、ベンダー固有の設定と構成が、接続するサーバー、サーバーのベンダー/バージョン、宛先 (トピックまたはキュー) などに解決されます。

オープン ソースの Java ライブラリを入手して開始するほど簡単なことはありません。すべての JMS ベンダーは独自の実装です。(例: IBM WebSphere MQ、Apache ActiveMQ、Tibco EMS、OpenMQ、HornetQ)。いくつかのオープンソースといくつかの商用があります。インフラストラクチャで使用されている特定の JMS ベンダーを特定し、そのベンダーのドキュメントに従って JMS 構成をセットアップする必要があります。一部のベンダーでは、ActiveMQ など、JMS URL で完全な設定を許可しています。Java にロードされた特定のライブラリが必要です。

SOAP over JMS は、WSDL、WS-Security などの一般的な SOAP 標準をすべて使用するだけですが、JMS は信頼性とトランザクション性を疎結合とともに追加し、システムと構成の複雑さと引き換えに堅牢性を提供します。

特定の JMS ベンダーやライブラリーを念頭に置いていない場合は、CXF と ActiveMQ を調べて、SOAP over JMS を起動して実行することをお勧めします。ガイドはこちらからご覧いただけます

于 2012-07-18T20:49:50.360 に答える
2

基本的に、JMS はメッセージング用のミドルウェア サービスです。http: //en.wikipedia.org/wiki/Java_Message_Serviceを参照してください。

「soap:address」は、サービスの場所を定義します。

「SOAP over JMS」とは、JMS キューを介してサービスに SOAP 要求を送信することを意味します

クライアント側では、対応する JMS キューに接続する必要があります。これが透過的に処理される (またはまったくサポートされない) かどうかは、ライブラリによって異なります。

別のチュートリアル: http://www.ibm.com/developerworks/websphere/library/tutorials/0903_adams/index.html

SOには、関連する質問がいくつかあります。

于 2012-07-18T12:22:38.033 に答える