特集
2004/03/17 16:55 更新
特集:第1回 プログラミングレスを実現するexteNd Composer (3/5)
郵便番号検索サーブレットの作成
次はいよいよXMLテンプレートとWSDLリソースを使って「GetNearbyZipCodes」Webサービスを呼び出すサーブレットを作成します(画面11)。
この操作によりWebサービス作成ウィザードが起動します。
表示される「Create New Web Service」ウィンドウの「Name」テキストフィールドには、「WSGetNearbyZipCodes」と入力し、画面12の入出力に使用するXMLテンプレート指定では、「Input Message」にある「Template Category」のドロップダウンリストで「ZipCodes」を選択します。今回は登録されているXMLテンプレートが1つしかないため、「Template Name」には自動的に「GetNearbyZipCode」が指定されます。「Output Message」は標準設定のままで最後に「Next」ボタンをクリックします。
次には、「Create New XML Map Component」と書かれたウィンドで、サービス中に使用するTemp MessageやFault Messageを指定する画面が表示されます。今回はそれぞれのメッセージを使用しないため、何も指定せず「Next」ボタンをクリックします。さらに次の画面には、「Specify one or more Temp and ...」と書かれたサービスのインプットヘッダやアウトプットヘッダの指定が表示されます。今回はInput Header MessageもOutput Header Messageも使用しないため、何も指定せずそのまま「Finish」ボタンをクリックすれば完了です。
次に作成したサーブレットから「GetNearbyZipCodes」Webサービスを呼び出す処理を作成します。
画面中央で「WSGetNearbyZipCodes」文字が反転している個所をアクションペインと呼びます。Composer Designerではこの中にコンポーネントやサービスが実行するロジックを「Action」として記述していきます。アクションペインの「WSGetNearbyZipCodes」を右クリックし、「New Action」→「Data Exchange」→「WS Interchange…」の順に選択すると、WS Interchangeアクションの設定ダイアログが表示されます(画面14)。
ここではWebサービスを呼び出すためのWSDLとXMLテンプレートの情報を設定します。「WSDL」タブでは、「WSDL Resource」ドロップダウンリストから「ZipCodes」を選択し、「Operation」ドロップダウンリストからは「GetNearbyZipCodes(…)」を選択します。
「Messages」タブでは、「input=GetNearby…」行の「Expression」フィールドに「Input」(大文字小文字を識別します)と入力します。同じく「output=GetNearb…」行の「Expression」フィールドに「Output」(大文字、小文字を識別します)と入力します。最後に「OK」ボタンをクリックすると、「WSGetNearbyZipCodes」下に「WS Interchange」アクションが表示されます。
これで「ZipCodes」Webサービスの「GetNearbyZipCodes」を呼び出すサービス作成が完了です(画面16)。ここまでの開発作業はすべてウィザードに応えていくだけで終了することが分かったと思います。最後にツールバーの「Save」ボタンをクリックしてサービス保存します。
動作テスト
作成したサービスが、Webサービスを呼び出せることを確認しましょう。まずは「ZipCodes」Webサービスに渡す値を設定します。画面17に見られるよう「Input」ペインに表示されているXMLデータの「ZipCode」エレメントの横、データ領域をダブルクリックすると「Edit Data」ダイアログボックスが表示されます。ここでは、「$Input/GetNearbyZipCodes/ZipCode」と表示されているテキストボックスに「60143」と入力します。同様にして「RadiusMiles」エレメントのDataとして「10」を入力します(画面17)。
これで「WSGetNearbyZipCodes」サービスを動作させる準備が整いました。ツールバーの(Executeボタン)をクリックするとサービスが動作し、実際にインターネットを介して「ZipCodes」Webサービスを呼び出し、そしてOutputペインに結果を出力します。実行した結果、Outputペインに画面18のようなXMLデータが表示されていれば成功です。
「Locations」エレメントとしてZipCode 60143を中心とした半径10マイルに存在するZipCodeをXMLデータとして取得できることが確認できました。
このようにexteNd Composerでは開発しながらその場でテストが可能なシミュレータも備えています。XMLテンプレートのデータをその都度入れ替えるだけでなく、あらかじめ正常系、アプリケーションサーバにデプロイすることなく、柔軟且つ迅速なテストを行うことができます。
[磯田義雄,ITmedia]
Copyright © ITmedia, Inc. All Rights Reserved.