# 応答を期待せずにメッセージを送信

このシナリオは、Talend ESB、Talend Data Services Platform、Talend Real-Time Big Data Platform、Talend Data Fabricにのみ適用されます。

このシナリオでは、プロバイダージョブとコンシューマージョブが必要になります。ESB/Web Servicesファミリー下のコンポーネントに基づいて構築されたジョブは、[Repository] (リポジトリー)の[Services] (サービス)ノードで定義されたWebサービスの実装として機能します。

* [Repository] (リポジトリー)ツリービューで、[Services] (サービス)ノードを右クリックして、コンテキストメニューから[Create Service] (サービスを作成)を選択します。 ![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/use_case_tesbproviderresponse26.png)
* ポップアップウィザードで[Name] (名前)フィールドにServiceRequestと入力し、[Next] (次へ)をクリックします。
* [Create new WSDL] (WSDLの新規作成)オプションを選択します。 ![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/use_case_tesbproviderfault_22.png)
* [Finish] (終了)をクリックし、この作成を確定します。デザインワークスペースでサービスが開かれます。 ![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/use_case_tesbproviderresponse27.png)
* WSDLスケルトンでServiceRequestPortポートを右クリックし、[Show properties] (プロパティを表示)を選択します。[Address] (アドレス)フィールドで、サービスを公開するアドレス(http://127.0.0.1.8088/esb/providerなど)を指定します。 ![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/use_case_tesbproviderresponse28.png)
* WSDLスケルトンのポートタイプとしてServiceRequestPortTypeをクリックします。この名前をTEST\_ProviderJobSoapBindingに変更します。
* WSDLスケルトンの操作としてServiceRequestOperationをクリックします。この名前をinvoke(anyType):anyTypeに変更します。
* WSDLファイルを保存します。[Repository] (リポジトリー)ビューのServicesノードの下に、新しく定義されたWebサービスが表示されます。
* ServicesノードでServiceRequest 0.1を右クリックし、[Import WSDL Schemas] (WSDLスキーマをインポート)を選択します。このオプションにより、[Metadata] (メタデータ) &gt; [File xml] (XMLファイル)の下でWSDLメタデータがサービスからリポジトリーにインポートされるので、サービスや他のコンポーネント間で操作内容を共有できるようになります。

プロバイダージョブは、tESBProviderRequest、tXMLMap、および2つのtLogRowコンポーネントで構成されます。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest1.png)

* [Palette] (パレット)からデザインワークスペースに次のコンポーネントをドロップします。tESBProviderRequest、tXMLMap、2つのtLogRow。

* デザインワークスペースでtESBProviderRequest\_1をダブルクリックして、その[Component] (コンポーネント)ビューを表示し、[Basic settings] (基本設定)を設定するために使われます。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest2.png)

* [Property Type] (プロパティタイプ)リストから[Repository] (リポジトリー)を選択し、[...]ボタンをクリックしてポート名と操作の粒度に合わせてサービスを選択します。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest23.png)

* [OK]をクリックします。

* [Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックして、tESBProviderRequest\_1のスキーマを表示します。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest3.png)

* [OK]をクリックします。

* tESBProviderRequest\_1をtLogRow\_1に接続します。

* デザインワークスペースでtLogRow\_1をダブルクリックして、その[Component] (コンポーネント)ビューを表示し、[Basic settings] (基本設定)を設定するために使われます。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest4.png)

* [Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックして、次のようにスキーマを定義します。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest5.png)

* tLogRow\_1をtXMLMap\_1に接続します。

* tXMLMap\_1をtLogRow\_2に接続し、この行を*payload*という名前にします。

* デザインワークスペースで、tXMLMap\_1をダブルクリックして、[Map Editor] (マップエディター)を開きます。

* マップエディターの右下にある[+]をクリックして、*payload*テーブルに1行を追加し、この行を*payload*という名前にします。

* この*payload*行の[Type] (タイプ)カラムで、[Document] (ドキュメント)をデータ型として選択します。対応するXMLルートは、出力フローを表す右側のトップテーブルに自動的に追加されます。

* *payload*テーブルで、*root*を右クリックしてコンテキストメニューを開きます。

* コンテキストメニューで[Create Sub-Element] (サブエレメントの作成)を選択し、ポップアップダイアログボックスに*response*を入力します。

* *response*ノードを右クリックし、コンテキストメニューで[As loop element] (ループエレメントとして)を選択します。

* この操作を繰り返して入力テーブルの*root*ノードのサブエレメント*request*を作成し、*request*ノードをループエレメントとして設定します。

* 入力テーブルの*request*ノードをクリックし、出力テーブルの*response*ノードの行の[Expression] (式)カラムにドロップします。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest6.png)

* [OK]をクリックしてマッピングを検証し、マップエディターを閉じます。

* デザインワークスペースでtLogRow\_2をダブルクリックして、その[Component] (コンポーネント)ビューを表示し、[Basic settings] (基本設定)を設定するために使われます。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest7.png)

* [Edit Schema] (スキーマを編集)の横にある[...]ボタンをクリックして、次のようにスキーマを定義します。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest8.png)

* ジョブを保存します。

コンシューマージョブは、tFixedFlowInput、tXMLMap、tESBConsumer、2つのtLogRow コンポーネントで構成されます。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest9.png)

* [Palette] (パレット)からデザインワークスペースに次のコンポーネントをドロップします。tFixedFlowInput、tXMLMap、tESBConsumer、2つのtLogRow。

* デザインワークスペースでtFixedFlowInput\_1をダブルクリックして、その[Component] (コンポーネント)ビューを表示し、[Basic settings] (基本設定)を設定するために使われます。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest10.png)

* tFixedFlowInput\_1コンポーネントのスキーマを編集します。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest11.png)

* [+]ボタンをクリックしてString型の行を新規追加して、*payloadString*という名前を付けます。

* [OK]をクリックします。

* [Number of rows] (行数)フィールドに行数*1*を設定するために使われます。

* [Mode] (モード)エリアで、[Use Single Table] (単一テーブルを使用)を選択し、[Value] (値)フィールドにworldを引用符付きで入力します。

* tFixedFlowInput\_1をtXMLMap\_1に接続します。

* tXMLMap\_1をtESBConsumer\_1に接続し、この行を*payload*という名前にします。

* デザインワークスペースで、tXMLMap\_1をダブルクリックして、[Map Editor] (マップエディター)を開きます。

* 出力テーブルで、*root*ノードを右クリックしてコンテキストメニューを開きます。

* コンテキストメニューで[Create Sub-Element] (サブエレメントの作成)を選択し、ポップアップダイアログボックスに*request*を入力します。

* *request*ノードを右クリックし、コンテキストメニューで[As loop element] (ループエレメントとして)を選択します。

* 入力テーブルの*payloadstring*ノードをクリックし、出力テーブルの*request*ノードの行の[Expression] (式)カラムにドロップします。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest12.png)

* [OK]をクリックしてマッピングを検証し、[Map Editor] (マップエディター)を閉じます。

* プロバイダージョブを開始します。実行ログには次の情報が表示されます。

  ```
  ...
  web service [endpoint: http://127.0.0.1:8088/esb/provider] published
  ...
  ```

* tESBConsumer\_1[Component] (コンポーネント)ビューで、[Basic settings] (基本設定)を設定するために使われます。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest13.png)

* [Service Configuration] (サービス設定)フィールドの横にある[...]ボタンをクリックして、エディターを開きます。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest14.png)

* [WSDL]フィールドで、*http://127.0.0.1:8088/esb/provider?WSDL*を入力します。

* 更新ボタンをクリックし、ポート名と操作名を取得します。

* [OK]をクリックします。

* tESBConsumerの[Basic settings] (基本設定)で、次のように[Input Schema] (スキーマの入力)を設定するために使われます。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest15.png)

* [Response Schema] (応答スキーマ)を次のように設定します。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest16.png)

* [Fault Schema] (フォールトスキーマ)を次のように設定します。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest17.png)

* tESBConsumer\_1をtLogRow\_1とtLogRow\_2に接続します。

* デザインワークスペースでtLogRow\_1コンポーネントをダブルクリックして、その[Component] (コンポーネント)を表示し、[Basic settings] (基本設定)を設定するために使われます。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest18.png)

* [Edit Schema] (スキーマを編集)の横にある[...]ボタンをクリックして、次のようにスキーマを定義します。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest19.png)

* ジョブでtLogRow\_2をダブルクリックして、その[Component] (コンポーネント)を表示し、[Basic settings] (基本設定)を設定するために使われます。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest20.png)

* [Edit Schema] (スキーマを編集)の横にある[...]ボタンをクリックして、次のようにスキーマを定義します。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/Use_Case_tESBProviderRequest21.png)

* ジョブを保存します。

* プロバイダージョブを実行します。実行ログには次の情報が表示されます。

  INFO: Setting the server's publish address to be http://127.0.0.1:8088/esb/provider

  2011-04-21 14:14:36.793:INFO::jetty-7.2.2.v20101205

  2011-04-21 14:14:37.856:INFO::Started

  SelectChannelConnector@127.0.0.1:8088

  web service [endpoint: http://127.0.0.1:8088/esb/provider] published

* コンシューマージョブを実行します。ジョブの実行ログには次の情報が表示されます。

  ```
  Starting job CallProvider at 14:15 21/04/2011.

  [statistics] connecting to socket on port 3942
  [statistics] connected
  TEST_ESBProvider2
  TEST_ESBProvider2SoapBingding
  |
  [tLogRow_2] payloadString: <request>world</request>
  {http://talend.org/esb/service/job}TEST_ESBProvider2
  {http://talend.org/esb/service/job}TEST_ESBProvider2SoapBinding
  invoke
  [tLogRow_1] payload: null
  [statistics] disconnected
  Job CallProvider2 ended at 14:16 21/04/2011. [exit code=0]
  ```

* プロバイダーのログにトレースログが表示されます。

  ```
  web service [endpoint: http://127.0.0.1:8088/esb/provider]
  published
  [tLogRow_1] payload: <?xml version="1.0" encoding="UTF-8"?>
  <request>world</request>
  ### world
  [tLogRow_2] content: world
  [tLogRow_3] payload: <?xml version="1.0" encoding="UTF-8"?>
  <response xmlns="http://talend.org/esb/service/job">Hello, world!</response>
  web service [endpoint: http://127.0.0.1:8088/esb/provider] unpublished
  [statistics] disconnected
  Job ESBProvider2 ended at 14:16 21/04/2011. [exit code=0]
  ```

**関連資料**

[tESBConsumer](https://help.qlik.com/talend/ja-JP/components/8.0/esb-soap/tesbconsumer "呼び出されたWebサービスから定義済みメソッドを呼び出し、指定されたパラメーターに基づいて定義されているクラスを返します。")

[tESBProviderRequest](https://help.qlik.com/talend/ja-JP/components/8.0/esb-soap/tesbproviderrequest "TalendジョブをWebサービスとしてラッピングします。")

**関連情報**

[tXMLMap](https://help.qlik.com/talend/ja-JP/components/8.0/txmlmap/txmlmap)

[tLogRow](https://help.qlik.com/talend/ja-JP/components/8.0/logs-and-errors/tlogrow)

[tFixedFlowInput](https://help.qlik.com/talend/ja-JP/components/8.0/tfixedflowinput/tfixedflowinput)