Web サービス・メッセージ・フローの作成

WebSphere Service Registry and Repository (WSRR) Web サービス・メッセージ・フローが提供されていますが、メッセージ・フローを独自に作成したい場合は、次のようにします。

  1. My WSRR Connectivity Message Flows という名前の新しいメッセージ・ブローカー・プロジェクトを作成します。「My WSRR Connectivity Message Set」プロジェクトにプロジェクト依存関係を追加します。
    手順については、WebSphere Message Broker 資料の メッセージ・ブローカー・プロジェクトの作成を参照してください。
  2. DemoCustomer_WebService_v10 という名前の新規メッセージ・フローを作成します。
    手順については、WebSphere Message Broker 資料の メッセージ・フローの作成を参照してください。
  3. メッセージ・フロー・エディターで、次の表にリストされているノードを追加して名前変更します。
    手順については、WebSphere Message Broker 資料の メッセージ・フロー・ノードの追加を参照してください。
    パレット・ドロワー ノード・タイプ ノード名
    Web Services SOAPInput SOAP DemoCustomer
    Transformation Compute Create WS Response
    Web Services SOAPReply SOAP Reply
  4. 次の表に示されているように、ノードを接続します。
    手順については、WebSphere Message Broker 資料の メッセージ・フロー・ノードの接続を参照してください。
    ノードを正しく相互接続したことを確認するには、WebSphere Service Registry and Repository Connectivity サンプルについての図を参照してください。
    ノード名 ターミナル 接続先のノード
    SOAP DemoCustomer Out Create WS Response
    Create WS Response Out SOAP Reply
  5. 次の表に示されているように、ノードのプロパティーを構成します。 この表に代替値が示されていなければ、すべてのプロパティーに関してデフォルト値を受け入れます。
    手順については、WebSphere Message Broker 資料の メッセージ・フロー・ノードの構成を参照してください。
    ノード名 ページ プロパティー
    SOAP DemoCustomer 基本 WSDL ファイル名 以前 WSRR Connectivity メッセージ・セットにインポートされた DemoCustomer_v10.wsdl ファイルを参照します。
    このファイルが選択されると、「基本」ページのその他のプロパティーに値が設定されます。
  6. Create WS Response ノードをダブルクリックして、ESQL エディターを開きます。以下の ESQL コード・モジュールをコピーして、ESQL ファイルに貼り付けます。
    詳しくは、WebSphere Message Broker 資料の ESQL の開発を参照してください。
    DECLARE tns NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
    DECLARE intf NAMESPACE 'http://demo.sr.eis.ibm.com';
    
    CREATE COMPUTE MODULE DemoCustomer_WebService_v10_CreateWSResponse
      CREATE FUNCTION Main() RETURNS BOOLEAN
      BEGIN
        CALL CopyMessageHeaders();
        SET OutputRoot.SOAP.Body.intf:updateCustomerResponse.updateCustomerReturn = 'Updated Customer via WebService version 1.0';
        RETURN TRUE;
      END;
      
      CREATE PROCEDURE CopyMessageHeaders() BEGIN
        DECLARE I INTEGER;
        DECLARE J INTEGER;
        SET I = 1;
        SET J = CARDINALITY(InputRoot.*[]);
        WHILE I < J DO
          SET OutputRoot.*[I] = InputRoot.*[I];
          SET I = I + 1;
        END WHILE;
      END;
    
    END MODULE;
    
    CREATE COMPUTE MODULE DemoCustomer_WebService_v20_CreateWSResponse
      CREATE FUNCTION Main() RETURNS BOOLEAN
      BEGIN
        CALL CopyMessageHeaders();
        SET OutputRoot.SOAP.Body.intf:updateCustomerResponse.updateCustomerReturn = 'Updated Customer via WebService version 2.0';
        RETURN TRUE;
      END;
    
      CREATE PROCEDURE CopyMessageHeaders() BEGIN
        DECLARE I INTEGER;
        DECLARE J INTEGER;
        SET I = 1;
        SET J = CARDINALITY(InputRoot.*[]);
        WHILE I < J DO
          SET OutputRoot.*[I] = InputRoot.*[I];
          SET I = I + 1;
        END WHILE;
      END;
    
    END MODULE;
    
    
  7. ESQL ファイルを保存します。
  8. Create WS Response ノードの「ESQL モジュール」プロパティーが DemoCustomer_WebService_v10_CreateWSResponse モジュールを 指していることを確認します。
  9. メッセージ・フローを保存します。
  10. DemoCustomer_WebService_v10.msgflow フローのコピーを作成します。新しいフローの名前は、DemoCustomer_WebService_v20.msgflow に設定します。
  11. Create WS Response ノードの「ESQL モジュール」プロパティーが DemoCustomer_WebService_v20_CreateWSResponse モジュールを指すように構成します。
  12. メッセージ・フローを保存します。

これで、メイン WSRR Connectivity メッセージ・フローを作成して、これらの Web サービスを呼び出すことができます。詳しくは、メイン・メッセージ・フローの作成を参照してください。

WebSphere Service Registry and Repository Connectivity サンプルの作成に戻る