# cSOAP

JAX-WSサービスに接続するために、Apache CXへの組み込み機能を提供します。

詳細は、Apache Camelのドキュメンテーションhttps://camel.apache.org/components/latest/を参照してください。

## cSOAPの標準プロパティ

これらのプロパティは、標準ジョブのフレームワークで実行されているcSOAPを設定するために使われます。

標準のcSOAPコンポーネントは、Connectivityファミリーに属しています。

## 基本設定

| プロパティ | 説明 |
| --- | --- |
| Address | Webサービスが提供されるサービスエンドポイントURL。<br><br>Webサービスを消費するためにcSOAPが使われ、エンドポイントルックアップがService Locatorを使う場合([Use Service Locator] (サービスロケーターを使用)チェックボックスがオン)、URLは"locator://anyAddress/"であることが必要です。 |
| タイプ | Webサービスを提供するために使うタイプを選択します。wsdlURLまたはserviceClassのいずれかです。<br><br>wsdlURL: WSDLファイルからWebサービスを提供するには、このタイプを選択します。ルートリソースまたはファイルシステムからWebサービスを提供するには、[Repository] (リポジトリー)または[File] (ファイル)を選択します。<br><br>serviceClass: SEI (Service Endpoint Interface)のJavaクラスからWebサービスを提供するには、このタイプを選択します。 |
| [WSDL File] (WSDLファイル) | このフィールドは、wsdlURLサービスタイプを選択すると表示されます。WSDLファイルがファイルシステムからのものである場合は、WSDLファイルへのパスを参照または入力します。WSDLファイルがルートリソースからのものである場合は、[...]をクリックしてリソースツリービューから必要なものを選択します。[Version] (バージョン)リストが表示され、ルートリソースのすべてのバージョンから選択できます。 |
| サービス設定 | このオプションは、[Type] (タイプ)リストでwsdlURLが選択されている場合に表示されます。これにより、サービスエンドポイント情報を簡単に設定できます。[...]をクリックして、サービス設定ウィザードを開きます。<br><br>ウィザードのWSDLフィールドには、[WSDL File] (WSDL ファイル)フィールドで定義されたWSDLファイルが自動的に入力されます。次のいずれかの方法で、サービス設定ウィザードで直接WSDLファイルを設定することもできます。<br><br><ul> <li> <p><span>[Browse...] (参照...)</span>をクリックして、ファイルシステム内のWSDLファイルを参照するか、パスを入力します。</p> </li> <li> <p><span>[Services] (サービス)</span>をクリックして、<span>[Services] (サービス)</span>の下でサービスを選択します。 </p> </li> <li> <p><span>[Resources] (リソース)</span>をクリックして、<span>[Resources] (リソース)</span>ノードの下でサービスを選択します。</p> </li> </ul><br><br>WSDLファイルを設定したら、![](https://help.qlik.com/talend/ja-JP/mediation-components/8.0/Resources/images/refresh_button.png)をクリックして、利用可能なポートと操作を[Port Name] (ポート名)ボックスと[Operation] (操作)ボックスにそれぞれ表示します。使うものを選択し、[Finish] (終了)をクリックします。[Operation] (操作)ボックスは、cSOAPコンポーネントを使ってWebサービスを消費する場合のみ表示されます。 |
| [Service Class] (サービスクラス) | このフィールドは、serviceClassサービスタイプを選択すると表示されます。Webサービスの提供に使われるサービスクラスの名前を入力します。 |
| [Dataformat] (データフォーマット) | 交換データスタイル。POJO、PAYLOAD、RAW、またはCXF\_MESSAGE。<br><br>POJO (Plain Old Java Objects)は、ターゲットサーバーで呼び出されるメソッドのJavaパラメーターです。<br><br>PAYLOADはメッセージペイロードであり、soap:bodyのコンテンツです。<br><br>RAWは、SAM (Service Activity Monitor)サポートなしでトランスポート層から受信したRawメッセージです。<br><br>CXF\_MESSAGEは、SAMサポートなしでトランスポート層から受信したRawメッセージです。 |
| [Use GZip Compress] (GZip圧縮の使用) | このチェックボックスをオンにすると、送信する前に受信メッセージをGZip形式に圧縮できます。 |
| [Service Name] (サービス名) | このサービスが実装しているサービス名。ns:SERVICE\_NAMEの形式でwsdl:service@nameにマッピングされます。ここでnsは、このスコープで有効なネームスペースプレフィックスです。このフィールドは、[Service configuration] (サービス設定)の入力を終えると自動的に入力されます。 |
| [Port Name] (ポート名) | このサービスが実装しているエンドポイント名。ns:PORT\_NAMEの形式でwsdl:port@nameにマッピングされます。ここでnsは、このスコープで有効なネームスペースプレフィックスです。このフィールドは、[Service configuration] (サービス設定)の入力を終えると自動的に入力されます。 |
| [Allow Streaming] (ストリーミングの許可) | このオプションは、[Dataformat] (データフォーマット)リストでPAYLOADが選択されている場合に表示されます。このチェックボックスをオンにすると、ペイロードが、バッファリングを介したストリーミングを可能にする javax.xml.transform.Sourceオブジェクトとして保持されます。このオプションが無効になっている場合、cSOAPコンポーネントは受信メッセージを解析してDOMエレメントに分割します。 |
| [Operation Name] (操作名) | このサービスが実装している操作名。ns:OPERATION\_NAMEの形式でwsdl:operation@nameにマッピングされます。ここでnsは、このスコープで有効なネームスペースプレフィックスです。このオプションは、Webサービスを消費するためにcSOAPコンポーネントが使われている場合に表示されます。このフィールドは、[Service configuration] (サービス設定)の入力を終えると自動的に入力されます。 |
| [Use Service Registry] (サービスレジストリーを使用) | このオプションは、Talend Enterprise ESBソリューションをサブスクライブしている場合のみ利用可能です。<br><br>このチェックボックスをオンにすると、Service Registryが有効になります。それによりダイナミックエンドポイントのルックアップが可能になり、レジストリーから取得された情報に基づいて、サービスのリダイレクトができるようになります。これはランタイムでのみ使えます。<br><br>cSOAPコンポーネントを使ってWebサービスを提供する場合、 Talend RuntimeでデプロイされたサービスはSecurity Token Serviceで機能します。<br><br>Webサービスを消費するためにcSOAPコンポーネントが使われている場合:<br><br>[Correlation Value] (相関値)フィールドで、相関IDを指定するか、またはこのフィールドを空白のままにしておきます。詳細は、[Use Business Correlation] (ビジネス相関の使用)オプションを参照してください。<br><br>[Username] (ユーザー名)および[Password] (パスワード)フィールドに、認証情報を入力します。パスワードを入力するには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符の間に入力し、OKをクリックして設定を保存します。<br><br>SAMLトークンがService Registryに登録されている場合、[Role] (ロール)フィールドでクライアントのロールを指定する必要があります。[Propagate Credentials] (認証情報をプロパゲート)チェックボックスをオンにし、既存の認証情報をプロパゲートすることで、認証済みユーザーの代わりに決断を下すこともできます。ユーザー名とパスワードを入力してSTSで認証し、ユーザー名とパスワードを使って認証情報をプロパゲートするか、またはエイリアス、ユーザー名、およびパスワードを入力し、証明書を使ってプロパゲートします。詳細は、[Use Authentication] (認証を使用)オプションをご覧ください。<br><br>Service Registryの設定方法と使い方は、[Setting up Service Registry](https://help.qlik.com/talend/r/en-US/8.0/administration-center-user-guide/setting-up-esb-service-registry)と[Service Registry](https://help.qlik.com/talend/r/en-US/8.0/esb-infra-services-configuration-guide/service-registry)をご覧ください。 |
| Service Locatorを使用 | エンドポイントの物理的な場所を指定せずに、ランタイムにサービスエンドポイントを検出するメカニズムをサービスコンシューマーに提供します。さらに、サービスプロバイダーは、Service Locatorでサービスエンドポイントを自動的に登録および登録解除できます。<br><br>情報メモ注: サービスコンシューマーの場合は、URLをさらに、[CXF Configuration / Address] (CXF設定/アドレス)で"locator://anyAddress/"フィールドに設定する必要があります。<br><br>[Custom Properties] (カスタムプロパティ)テーブルは、[UseService Locator] (サービスロケーターを使用)チェックボックスがオンの場合に表示されます。![](https://help.qlik.com/talend/ja-JP/mediation-components/8.0/Resources/images/plus_button.png)をクリックして、テーブルに必要なだけのプロパティを追加します。[Property Name] (プロパティ名)フィールドおよび[Property Value] (プロパティ値)フィールドにプロパティの名前と値をそれぞれ入力して、サービスを特定します。Service Locatorの詳細は、[Installing Service Locator](https://help.qlik.com/talend/r/en-US/8.0/esb-infra-services-configuration-guide/installing-service-locator)をご覧ください。 |
| [Use Service Activity Monitor] (サービスアクティビィティモニターの使用) | このオプションにより、イベントがキャプチャーされ、それに関する情報が保存されて、サービスアクティビィティの詳細な分析とビジネストランザクションにおけるメッセージの追跡とトレースが行えます。これはサービス応答時間の分析、トラフィックパターンの特定、根本原因分析の実行などに利用できます。<br><br>この機能は、処理モードにMESSAGEが使われている場合はサポートされません。[Dataformat] (データフォーマット)フィールドでMESSAGEを選択すると、[Use Service Activity Monitor] (サービスアクティビティモニタリングの使用)チェックボックスが無効になります。<br><br>Talend Enterprise ESBソリューションをサブスクライブしている場合、[Use Service Registry] (サービスレジストリーを使用)チェックボックスをオンにすることでもこのオプションは無効になります。 |
| [Use Authentication] (認証を使用) | 認証オプションを有効にするには、このチェックボックスをオンにします。[Username Token] (ユーザー名トークン)、[SAML Token (ESB runtime only)] (SAMLトークン(ESB Runtimeのみ))、[HTTP Basic] (HTTPベーシック)、[HTTP Digest] (HTTPダイジェスト)から選択します。<br><br>cSOAP コンポーネントを使用してWebサービスを作成する場合、 Username Token、 SAMLトークン、および HTTP Basicを 使用した認証は、ランタイムでのみ機能します。[HTTP Digest] (HTTPダイジェスト)はサポートされていません。[SAML Token (ESB runtime only)] (SAMLトークン(ESB Runtimeのみ))が選択されている場合、cSOAPはメッセージルーティングでさらに使うためにSAMLトークンをリクエストヘッダーから取得します。<br><br>cSOAPコンポーネントを使ってWebサービスを消費する場合、[Username Token] (ユーザー名トークン)、[HTTP Basic] (HTTPベーシック)、[HTTP Digest] (HTTPダイジェスト)による認証は、Talend Studioと Talend Runtimeのどちらでも機能します。[SAML Token] (SAMLトークン)による認証は実行時にのみ使用できます。必要に応じて、該当するフィールドにユーザー名およびパスワードを入力します。パスワードを入力するには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符の間に入力し、[OK] をクリックして設定を保存します。<br><br>[SAML Token (ESB runtime only)] (SAMLトークン(ESB Runtimeのみ))を選択した場合、リクエストを送信するためにユーザーの認証情報を提供するか、または既存の認証情報をプロパゲートすることで、認証済みユーザーの代わりに決定を下すことができます。次の中から選択します:<br><br>-: 該当するフィールドにユーザー名とパスワードを入力して、サービスにアクセスします。<br><br>[Propagate using U/P] (U/Pを使ってプロパゲート): STSを介して認証に使われるユーザー名とパスワードを入力します。<br><br>[Propagate using Certificate] (証明書を使ってプロパゲート): STSを介して認証に使われるエイリアスとパスワードを入力します。<br><br>このチェックボックスは、[Use Service Registry] (サービスレジストリーを使用)チェックボックスがオンになっていると表示されません。 |
| [Use Authorization] (認証サービスを使用) | このオプションは、Talend Enterprise ESBソリューションをサブスクライブしている場合のみ利用可能です。[Use Authentication] (認証を使用)リストで[SAML Token (ESB runtime only)] (SAMLトークン(ESB Runtimeのみ))を選択すると表示されます。<br><br>Webサービスの提供にcSOAPコンポーネントを使う場合は、このチェックボックスをオンにして認証を有効にします。<br><br>Webサービスの消費にcSOAPコンポーネントを使う場合は、このチェックボックスをオンにして許可された呼び出しを呼び出し、[Role] (ロール)フィールドにクライアントのロールを指定します。<br><br>ユーザーのロールと権限の管理については、[Managing ESB Resources and authorizations](https://help.qlik.com/talend/r/en-US/8.0/administration-center-user-guide/managing-esb-resources-and-authorizations)と[Talend Identity and Access Management](https://help.qlik.com/talend/r/en-US/8.0/esb-infra-services-configuration-guide/talend-identity-and-access-management)をご覧ください。 |
| [Use Business Correlation] (ビジネスコリレーションを使用) | コリレーションオプションを有効にするには、このチェックボックスをオンにします。それにより、連鎖型のサービスコールが同じコリレーションIDの下にまとめられます。<br><br>cSOAPを使ってWebサービスを提供する場合:<br><br>cSOAPは、リクエストメッセージからコリレーションIDを抽出します。<br><br>リクエストメッセージにコリレーションIDが含まれていない場合、プロバイダーはSOAPヘッダーに自動的にコリレーションIDを作成します。<br><br>Webサービスを消費するためにcSOAPが使われている場合:<br><br>コリレーションIDは、文字列または単純式を使って[Correlation Value] (コリレーション値)フィールドで指定できます。このフィールドを空白にすると、実行時にこの値が自動的に生成されます。コリレーションIDは、リクエストメッセージのカスタムSOAPヘッダーに作成され、それが呼び出すサービスに渡されます。<br><br>このチェックボックスは、[Use Service Registry] (サービスレジストリーを使用)チェックボックスがオンになっているか、[Dataformat] (データフォーマット)リストでRAWが選択されていると表示されません。 |

## 詳細設定

| プロパティ | 説明 |
| --- | --- |
| 引数 | オプションの引数を対応するテーブルに設定します。[+]を必要な回数だけクリックして、テーブルに引数を追加します。次に、対応する[Value] (値)フィールドをクリックして、値を入力します。利用可能なURIオプションは、http://camel.apache.org/cxf.htmlを参照してください。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | cSOAPは、ルート内の開始、中間、終了コンポーネントのいずれかとして使えます。 |
| 制限事項 | ライセンスの互換性の問題のため、このコンポーネントの使用に必要な1つ以上のJARが提供されていません。この特定のコンポーネントに不足しているJARをインストールするには、Component (コンポーネント)タブビューの[Install] (インストール)ボタンをクリックします。Talend StudioのIntegrationパースペクティブにある[Modules] (モジュール)タブでも、不足しているすべてのJARを簡単に見つけて追加できます。詳細は、[外部モジュールをインストール](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/installing-external-modules)をご覧ください。<br><br>ルート内に同じ名前を持つ複数のcSOAPコンポーネントを含めることはできません。<br><br>cSOAPを使ってWebサービスを利用する場合、 CXF\_MESSAGEデータ形式を使うなら、リクエストのボディタイプはjavax.xml.transform.Source.classである必要があります。そうでなければ、リクエストのボディは空になります。<br><br>単純なプロキシのユースケース(たとえば、cSOAPからcProcessor、cSOAPへ)の場合、RAWデータ形式を使うと、リクエストボディはリセットされます。cProcessorによって出力されると、出力リクエストボディは空になります。<br><br>cSOAPを使ってWebサービスを利用し、データ形式がPOJO、PAYLOAD、またはCXF\_MESSAGEである場合、フォールト応答が返されると、メッセージのルーティングは停止します。この場合は、cErrorHandlerコンポーネントを使っしてフォールトメッセージをキャッチすることをお勧めします。cErrorHandlerの詳細は、[cErrorHandler](https://help.qlik.com/talend/ja-JP/components/8.0/mediation-logs-and-errors/cerrorhandler)をご覧ください。 |

**関連概念**

* [ルートリソースからWebサービスを提供する](https://help.qlik.com/talend/ja-JP/mediation-components/8.0/mediation-apache-cxf/csoap-cprocessor-providing-web-service-from-route-resource)
* [JavaクラスからcSOAPを使ってWebサービスを提供する](https://help.qlik.com/talend/ja-JP/mediation-components/8.0/mediation-apache-cxf/csoap-cprocessor-providing-web-service-using-csoap-from-java-class)
* [WSDLファイルからcSOAPを使ってWebサービスを提供する](https://help.qlik.com/talend/ja-JP/mediation-components/8.0/mediation-apache-cxf/csoap-cprocessor-providing-web-service-using-csoap-from-wsdl-file)