はじめに
今回は、TalendでSOAP通信する方法についてまとめました。
まずは、前編として、SOAP通信を行うところまでやっていきます。
後編は、SOAPのresponseのXMLを解析して、欲しい情報を抽出する部分をやっていこうと思います。
SOAP通信ジョブを作る
Talend上で、SOAP通信を行うためには、tSOAPコンポーネントを使用します。
呼び出すサービスなのですが…準備が大変だったので、今回はデ辞蔵さんの辞書検索サービスを使用させて頂くことにしました。
SOAP連携テスト用の便利ツール、「SOAP UI」を入れておく
唐突ですが、SOAP UIというツールをインストールしましょう。
これは、SOAP実行をGUIで簡単に行える、というツールです。
もちろん、SOAP実行のテストツールとして使っても良いですが、
Request, ResponseのXMLを簡単に取り出せるのと、各種コンポーネントへの設定情報を簡単に取得できるので便利です。
インストール手順, 詳しい使い方などは割愛します。
tSOAPを設定してSOAP連携する
では、tSOAPの設定を行い、とりあえずのSOAP連携ができるJobを作ってみます。(作ってみました)
tSOAPコンポーネントの設定は下記の通りです。
ここで、必須設定は、
・ENDPOINT
・SOAP Action
・SOAP Message
です。
ENDPOINT
サービスが何処にあるかを指定します。
SOAP UIでは、新規作成したプロジェクトの左側+マークを一回押して、開いた凹レンズのようなアイコンの部分で右クリックし、
Service Endpointsタブに表示されているURLをセットしてあげます。
SOAP Action
ENDPOINTを知るために開いたタブの、一つ左隣にあるOvervierタブのOperationsにあるActionをセットします。
いくつか選択肢がありますが、今回は、デ辞蔵さんの辞書検索サービスの使い方に従い、一番最初にコールするGetDicListのActionを実行します。
ので、赤線部分のものをtSOAPに設定しました。
SOAP Message
サーバ側に渡したいRequestとなるXML文字列をセットします。
この文字列は、SOAP UIのRequestを開いた時に左側で表示されているXMLをベースに作ればOKです。
また、後篇で登場しますが、入力パラメータが複雑な場合は、tXMLMapを使用してRequestを組み立てるとよいです。
今回は、とても簡単なリクエストなので、このコンポーネント内に文字列を直接書きます。
ダブルクォートにはエスケープが必要です。
Responseを確認
SOAP通信の設定が完了したら、動作確認をしましょう。
tLogRowをtSOAPコンポーネントに繋ぎます。
問題無くtSOAP設定ができていれば、Webサービスの呼出結果が表示されるはずです。
今回は、とりあえず呼び出す所までです。
次回は、取得したXMLを解析して、Rowデータとして扱う部分をやっていこうと思います。