プライベートWSDLファイルからの顧客情報の抽出
このシナリオでは、顧客情報を抽出するためにプライベートWSDLファイルに接続する3コンポーネントジョブについて説明します。
このジョブで使用するWSDLファイルは、SSLプロトコル下で対応するWebサービスにアクセスします。この目的のために、このファイル内の最も相対的なコードは次のようになります。
<wsdl:port name="CustomerServiceHttpSoap11Endpoint"
binding="ns:CustomerServiceSoap11Binding">
<soap:address location="https://192.168.0.22:8443/axis2/services/CustomerService.CustomerServiceHttpSoap11Endpoint/"/>
</wsdl:port>
したがって、Tomcatのserver.xmlファイルに次のコードを入力します。
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="D:/server.keystore" keystorePass="password"
keystoreType="JKS"
truststoreFile="D:/server.p12" truststorePass="password"
truststoreType="PKCS12"
/>
そのため、このWSDLファイルに接続するためのKeystoreファイルが必要です。このジョブを複製するには、次の手順に従います。
-
tSetKeyStore、tWebService、tLogRowという各コンポーネントを[Palette] (パレット)からデザインワークスペースにドロップします。
-
tSetKeyStoreを右クリックし、コンテキストメニューを開きます。
-
このメニューで[Trigger] (トリガー) > [On Component Ok] (コンポーネントがOKの場合)を選択して、このコンポーネントをtWebServiceに接続します。
-
tWebServiceを右クリックし、コンテキストメニューを開きます。
-
このメニューで[Row] (行) > [Main] (メイン)を選択して、このコンポーネントをtLogRowに接続します。
-
tSetKeyStoreをダブルクリックして、その[Basic settings] (基本設定)ビューを開き、コンポーネントのプロパティを定義します。
-
[TrustStore type] (TrustStoreタイプ)フィールドのドロップダウンリストから[PKCS12]を選択します。
-
[TrustStore file] (TrustStoreファイル)フィールドで、対応するTrustStoreファイルを参照します。ここでは、server.p12です。
-
[TrustStore password] (TrustStoreパスワード)フィールドで、このTrustStoreファイルのパスワードを入力します。このサンプルでは、passwordです。
-
[Need Client authentication] (クライアント認証が必要)チェックボックスをオンにして、Keystore設定フィールドを有効化します。
-
[KeyStore type] (KeyStoreタイプ)フィールドのドロップダウンリストから[JKS]を選択します。
-
[Keystore file] (Keystoreファイル)フィールドで、対応するKeystoreファイルを参照します。ここでは、server.keystoreです。
-
tWebServiceをダブルクリックしてコンポーネントエディターを開くか、[Basic settings] (基本設定)ビューで[Service configuration] (サービス構成)の横にある[...]ボタンをクリックしてデザインワークスペースでコンポーネントを選択します。
-
[WSDL]フィールドで、使用するプライベートWSDLファイルを参照します。このサンプルでは、CustomerService.wsdlです。
-
[WSDL]フィールドの横にある更新ボタンをクリックして、WSDLの説明を取得し、それを後続のフィールドに表示します。
-
このサンプルでは、[Port Name] (ポート名)リストで、使用するポートCustomerServiceHttpSoap11Endpointを選択します。
-
[Operation] (操作)リストで、使用するサービスを選択します。このサンプルでは、選択されるサービスはgetCustomer(parameters):Customerです。
-
[Next] (次へ)をクリックし、エディターで新しいビューを開きます。
[Input mapping] (入力マッピング)ビューの右パネルに、サービスの入力パラメーターが自動的に表示されます。ただし、[[+] parameters] ([+]パラメーター)を選択した場合、他のパラメーターを追加でき、上部のプラスボタンをクリックすると、[Parameter Tree] (パラメーターツリー)ダイアログボックスが表示され、そこから任意のパラメーターを選択できます。
この例のWebサービスにはIDという入力パラメーターが1つだけあります。
-
parameters.ID行の[Expression] (式)カラムに、対象の顧客IDを引用符で囲んで入力します。このサンプルでは、A00001です。
-
[Next] (次へ)をクリックし、エディターで新しいビューを開きます。
[Element] (エレメント)リストに、Webサービスの出力パラメーターが自動的に表示されます。ただし、[[+] parameters] ([+]パラメーター)を選択した場合、他のパラメーターを追加でき、上部のプラスボタンをクリックすると、[Parameter Tree] (パラメーターツリー)ダイアログボックスが表示され、そこから任意のパラメーターを選択できます。
この例のWebサービスにはreturn.address、return.email、return.name、return.phoneという4つの出力パラメーターがあります。
定義済みのWebサービスの出力パラメーターと出力コンポーネントのスキーマ間に接続を作成する必要があります。この操作は次の手順で行います。
-
ビューの右パネルで[Edit Schema] (スキーマを編集)の横にある[...]ボタンをクリックしてダイアログボックスを開くと、出力スキーマを定義できます。
-
[Edit Schema] (スキーマを編集)で、プラスボタンをクリックし、4つのカラムを出力スキーマに追加します。
-
各カラム(このサンプルではName、Phone、Email、Address)をクリックして新しい名前を入力します。これで、対象の顧客情報を取得できます。
-
[OK]をクリックし、変更を有効にし、スキーマ編集ダイアログボックスを閉じます。
-
エディターの右側にある[Element] (エレメント)リストで、スキーマ編集ダイアログボックスで定義したカラムに対応するフィールドに各パラメーターをドラッグします。
使用可能な場合は、[Auto map] (自動マップ)ボタン(インターフェイスの左下にあるボタン)を使用すると、マッピング操作を自動的に実行できます。
-
[OK]をクリックして変更を有効にし、エディターを閉じます。
-
デザインワークスペースでtLogRowをダブルクリックして、その[Basic settings] (基本設定)ビューを開き、プロパティを定義します。
-
[Sync columns] (カラムを同期)をクリックして、先行のコンポーネントからスキーマを取得します。
-
ジョブを保存し、F6を押して実行します。
ID A00001の顧客の情報が返され、 Talend Studio のコンソールに表示されます。