ナビゲーションをスキップ

相互運用性ソリューション ガイド

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

JMS との相互運用性

AquaLogic Service Bus は、次の JMS 実装で動作が確認されています。

JMS 転送を使用するためのプロキシ サービスおよびビジネス サービスのコンフィグレーションについては、『AquaLogic Service Bus Console の使い方』の「プロキシ サービス」と「ビジネス サービス」を参照してください。

AquaLogic Service Bus のすべてサービス タイプで JMS 転送がサポートされます。AquaLogic Service Bus のサービス タイプと各サービス タイプの転送方式については、BEA AquaLogic Service Bus の『ユーザーズ ガイド』の「AquaLogic Service Bus でのメッセージ フローの作成」で「サービス タイプの選択」を参照してください。

WebLogic Server 9.x JMS の詳細については、以下のリソースを参照してください。

この節では、以下の JMS 相互運用性のトピックについて説明します。

 


非同期の要求/応答

JMS 相関 ID を使用した要求および応答メッセージへのリンクなど、非同期の要求/応答メッセージングの設計については、BEA AquaLogic Service Bus の『ユーザーズ ガイド』の「AquaLogic Service Bus でのメッセージ フローの作成」で「非同期の要求/応答」を参照してください。

 


SOAP/JMS 転送

BEA WebLogic Workshop で JMS バインディングを使用してビジネス サービスをコンフィグレーションした場合、AquaLogic Service Bus Console では次の SOAP/JMS URI 形式を指定する必要があります。

jms://host:port/factoryJndiName/destJndiName

これに対して、BEA WebLogic Workshop では次の形式を想定しています。

jms://host:port/factoryJndiName/destJndiName?URI=/process/myprocess.jpd

この問題を解決するには、メッセージを送信する前に、メッセージ フロー内で outbound 変数 ($outbound) に JMS プロパティとしてこの URI を設定する必要があります。$outbound の設定については、『AquaLogic Service Bus Console の使い方』の「メッセージ コンテキスト」で「inbound 変数と outbound 変数」を参照してください。

WebLogic Server 8.1 で JMS バインディングを使用してビジネス サービスをコンフィグレーションした場合、AquaLogic Service Bus Console では次の SOAP/JMS URI 形式を使用する必要があります。

jms://host:port/factoryJndiName/destJndiName?URI=/contextURI/serviceName

要求がビジネス サービスに送信される前に、メッセージ フロー内で outbound 変数 ($outbound) に JMS プロパティとしてこの URI を設定する必要があります。

WebLogic Server 9.x で JMS バインディングを使用してビジネス サービスをコンフィグレーションした場合、AquaLogic Service Bus Console では次の SOAP/JMS URI 形式を使用する必要があります。

jms://host:port/contextURI/serviceName?URI=destJndiName

ターゲット WebLogic Server の既存の QueueConnectionFactory の JNDI 名を使用するように、ビジネス サービスをコンフィグレーションする必要があります。また、要求がビジネス サービスに送信される前に、メッセージ フロー内で outbound 変数 ($outbound) にユーザ定義の JMS プロパティ (名前が URI、値が /contextURI/serviceName) も設定する必要もあります。

 


WebLogic サーバ、JMS サーバ、およびドメインの命名ガイドライン

複数のドメインが関わる場合、1 つの命名規則がすべての WebLogic Server デプロイメントに適用されます。以下の点に注意してください。

また、JMS サーバ名については、以下の点に注意してください。

WebLogic JMS のコンフィグレーションと管理の詳細については、以下を参照してください。

WebLogic Server ドメインの詳細については、『ドメインのコンフィグレーションについて』を参照してください。

 


サービスの JMS タイプの指定

AquaLogic Service Bus では、異種のエンドポイント間での相互運用性を確保するため、使用されるコンテンツ タイプ、JMS タイプ、およびエンコーディングをメッセージ フローのコンフィグレーション時にそれぞれ制御できます。JMS タイプは、バイトまたはテキストのいずれかです。詳細については、BEA AquaLogic Service Bus の『ユーザーズ ガイド』の「AquaLogic Service Bus でのメッセージ フローの作成」で「コンテンツ タイプ、JMS タイプ、およびエンコーディング」を参照してください。

 


AquaLogic Service Bus および MQ/JMS の相互運用性

AquaLogic Service Bus と MQ/JMS の相互運用性については、「WebSphere MQ との相互運用性」を参照してください。

 


WSDL 定義の SOAP エラー メッセージ

WebLogic clientgen ツールは、明示的にエラーを定義した WSDL を消費するときに、XML エラー タイプに応じた java.lang.Exception のサブクラスを生成します。WebLogic Server JAX-RPC スタックは、SOAP 応答メッセージを検査して、応答メッセージに SOAP エラーがあると判断すると、そのエラーを、clientgen で生成された例外 Java クラスにマップしようとします。

たとえば、次のコード リストの定義が WSDL に含まれる場合、clientgen ツールは、java.lang.Exception を拡張する Java クラス com.bea.test.TheFaultType を生成します。JAX-RPC クライアントが、サービス スタブの関連メソッドを呼び出すときに、com.bea.test.TheFaultType を捕捉できます。

コード リスト 3-1 WSDL 定義の例

<definitions ... xmlns:s0="http://www.bea.com/test/">
   ...
   <types>
      <xsd:schema targetNamespace="http://www.bea.com/test/">
         ...
         <xsd:complexType name="theFaultType">
            <xsd:sequence>
               <xsd:element name="ID" type="xsd:int" />
               <xsd:element name="message" type="xsd:string" />
            </xsd:sequence>
         </xsd:complexType>
         <xsd:element name="theFault" type="theFaultType" />
      </xsd:schema>
   </types>
   ... 
   <message name="theFaultMessage">
      <part element="s0:theFaultPart" name="theFault" />
   </message>
   ... 
   <binding ...>
      <operation ...>
         <soap:operation soapAction="..." style="document" />
         <input ...>
            ... 
         </input>
         <output ...>
            ... 
         </output>
         <fault ...>
            <soap:fault name="theFaultPart" use="literal" />
         </fault>
      </operation>
   </binding>
   ... 
</definitions>

JAX-RPC スタックが適切な例外を送出するためには、SOAP メッセージに含まれるエラーの形式が適切であることが必要です。エラーが AquaLogic Service Bus メッセージ フロー内で作成される場合は、以下の手順を実行します。

  1. $body 変数のノードを以下のコード例で置き換えます。

コード リスト 3-2

<soap-env:Body>
      <soap-env:Fault>
         <faultcode xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">soap:Server</faultcode>
         <faultstring>Some literal string</faultstring>
         <detail>
            <test:theFault>
               <test:ID>Any user defined code</e2eb:Id>
               <test:message>A specific literal message</test:message>
            </test:theFault>
         </detail>
      </soap-env:Fault>
</soap-env:Body>

このとき、次のようになります。

  1. 失敗時の返信アクションをコンフィグレーションします。

AquaLogic Service Bus Console での返信アクションのコンフィグレーションについては、『AquaLogic Service Bus Console の使い方』の「プロキシ サービス : アクション」を参照してください。

clientgen ツールは、JAX-RPC スタブなど、Web サービスを呼び出すために必要なクライアントサイド アーティファクトを生成するために使用します。『WebLogic Web サービス プログラマーズ ガイド』の「Ant タスク リファレンス」を参照してください。

 

ナビゲーション バーのスキップ  ページの先頭 前 次