メイン コンテンツをスキップする 補完的コンテンツへスキップ

データサービスを使ってルートを作成する方法

このセクションでは、前のセクションで作成したデータサービスを使ってルートを作成する方法を説明します。

このシナリオでは、作成したばかりのウェブサービスを使ってルートを定義します。次にこのウェブサービスに要求を送信し、ウェブサービスから応答を取得して、それをさらに活用できます。

ルートを作成

ルートを作成する場合は、次の項目が必要です:

  • メッセージ処理用の接続ファクトリーを指定するcJMSConnectionFactoryコンポーネント
  • cJMSコンポーネント(2つ): あるキューからJMSメッセージを読み取ってウェブサービスにリクエストを送信するために1つ、ウェブサービスからレスポンスを取得して別のキューに保存するために1つ
  • ウェブサービスに接続するためのcSOAPコンポーネント

Before you begin

データを送信してウェブサービスを要求するには、メッセージングブローカーとしてApache ActiveMQを使用します。ルートを実行する前に、ActiveMQサーバーを起動する必要があります。ActiveMQサーバーのインストールと起動の詳細は、Apache ActiveMQをインストールApacheのウェブサイトをご覧ください。

Procedure

  1. [Repository] (リポジトリー)ツリービューで、[Route] (ルート)ノードを右クリックし、コンテキストメニューから[Create Route] (ルートの作成)を選択します。
  2. ポップアップウィザードで、必要なフィールドに情報を入力します。このシナリオでは、[Name] (名前)フィールドに、「airportRoute」と入力し、[Finish] (終了)をクリックします。
    デザインワークスペースでルートが開きます。

ルート用にコンポーネントをドロップしてリンク

Procedure

  1. [Palette] (パレット)からデザインワークスペースに、次のコンポーネントを配置します:
    • cMQConnectionFactoryコンポーネント
    • cSOAPコンポーネント
    • cProcessorコンポーネント
    • cJMSコンポーネント(2つ)
  2. ロールが明確に理解できるようにコンポーネントにラベルを付け、次に示すように[Row] (行) >[Route] (ルート)接続を使って、コンポーネントをリンクします。
    デザインワークスペース内のジョブのスクリーンショット。

コンポーネントを設定

Procedure

  1. cMQConnectionFactoryコンポーネントをダブルクリックし、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開きます。
    [Basic settings] (基本設定)ビュー。
  2. [MQServer]リストからActiveMQを選択します。[Broker URI] (ブローカーURI)フィールドに、ローカルActiveMQサーバーのURIを入力します。このユースケースでは、"tcp://localhost:61616"です。
  3. Inputという名前のcJMSコンポーネントをダブルクリックし、[Basic settings] (基本設定)ビューを開きます。
    [Basic settings] (基本設定)ビュー。
  4. [Type] (タイプ)リストから、JMSキューにメッセージを送信するための[queue] (キュー)を選択します。[Destination] (デスティネーション)フィールドに、JMSキューの名前(このユースケースではIN)を入力します。ConnectionFactoryのリストから、設定したばかりのActiveMQ接続ファクトリを選択します。
  5. この手順を繰り返し、同じConnectionFactoryを使って、Outputという名前のcJMSコンポーネント設定し、デスティネーションJMSキューにOUTという名前を付けます。
    [Basic settings] (基本設定)ビュー。
  6. cSOAPコンポーネントをダブルクリックし、[Basic settings] (基本設定)ビューを開きます。
    [Basic settings] (基本設定)ビュー。
  7. [Address] (アドレス)フィールドに、作成したウェブサービスエンドポイントのURLを入力します。この例ではhttp://localhost:8200/airport.serviceです。[Type] (タイプ)リストで、wsdlURLを選択します。[WSDL File] (WSDLファイル)フィールドに、WSDLファイルへのパスを入力します。この場合は、http://localhost:8200/airport.service?wsdlです。[Dataformat] (データフォーマット)リストで、PAYLOADを選択します。
  8. cProcessorコンポーネントをダブルクリックし、[Basic settings] (基本設定)ビューを開きます。
    [Basic settings] (基本設定)ビュー。
  9. [Code] (コード)エリアで、次に示すようにコードをカスタマイズし、[Run] (実行)コンソールでメッセージの本文を表示します。
    System.out.println("The output message is: "+
    exchange.getIn().getBody(String.class));

ルートを実行してデータサービスを実装する

Procedure

  1. [Run] (実行)ビューをクリックして表示し、[Run] (実行)ボタンをクリックしてルートの実行を開始します。F6を押して実行することもできます。

    ルートが正しく実行されました。

    ジョブの実行に成功した後のコンソール結果のスクリーンショット。
  2. ActiveMQウェブコンソールに切り替えます。入力側のキューが既に作成されています。
    ActiveMQインターフェイスでの入力側のキューのスクリーンショット。キューにコンシューマーが1人います。
  3. 入力側のキューに次のメッセージボディを入力し、メッセージを送信します。
    <air:getAirportInformationByISOCountryCode>
       <air:CountryAbbrviation>CN</air:CountryAbbrviation>
    </air:getAirportInformationByISOCountryCode>
  4. ルートデザイナーで、メッセージペイロードがウェブサービスに送信されたことを確認できます。設定したように、ウェブサービスが呼び出され、応答が別のキューのOUTに送信されています。

    キューのメッセージの本文がコンソールに出力されます。

    コンソール内のメッセージ。

    ActiveMQ =ウェブコンソールからOUTキューを確認することもできます。次のようにメッセージが1つあります。

    ActiveMQインターフェイス内のキューのスクリーンショット。出力側のキューには、保留中のメッセージが1つ、キューに送信されたメッセージが1つあります。入力側のキューには、コンシューマーが1人、キューに送信されたメッセージが1つ、キューから削除されたメッセージが1つあります。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。