レベル: 初級 米持 幸寿, テクノロジー・エバンジェリスト, IBM
2006年 8月 07日 WSADで Webサービスを作ってみよう! 第6回です。
はじめに
WSADを使って、DB2にある表をを簡単にSOAPメッセージングとしてWebサービス化することができます。ウィザードを実行することで、以下のものが自動生成されます。
- SQLステートメント
- DADXファイル
- インターフェース定義WSDL
- 実装定義WSDL
- ISDファイル(ディプロイメント・ディスクリプター)
- SOAPランタイムがWebアプリケーションにセットアップ
- DADXランタイムがWebアプリケーションにセットアップ
- クライアント用プロキシークラス
- 必要に応じてシリアライザー・クラスとマッピング・クラス
- テスト用サンプルJSPアプリケーション
WSADでは、DB2のデータベースをWebサービス化するためのウィザードがついています。この機能を使うと、DB2の表形式のデータベースを、SOAPメッセージングを使って、簡単にXMLとして取り出すことができます。
1. 利用するデータベース表
ここでは、DB2のSAMPLEデータベースにある「EMPLOYEE」表(社員表)と「DEPARTMENT」表(組織表)を一括検索した結果をWebサービスにしてみましょう。
EMPLOYEE表は、EMPNO(社員番号)、FIRSTNME(名)、MIDINIT(ミドルネームのイニシャル)、LASTNAME(性)、WORKDEPT(組織コード)、PHONENO(電話番号)、HIREDATE(入社日)、JOB(仕事)、EDLEVEL(?)、SEX(性別)、BIRTHDATE(誕生日)、SALARY(給料)、BONUS(ボーナス)というカラムをもった表です。
一方、DEPARTMENT表は、DEPTNO(組織コード)、DEPTNAME(組織名)、MGRNO(マネージャーの社員番号)、ADMRDEPT(管理組織)、LOCATION(場所)といったカラムをもった表です。
EMPLOYEE表のWORKDEPTカラムと、DEPARTMENT表のDEPTNOカラムをJOINして検索することで、ひとつの表にすることができます。ここでは、EMPNO、FIRSTNME、LASTNAME、DEPTNAMEを取り出すWebサービスを作ることにしましょう。
2. 前準備
DB2の表からWebサービスを作るためには、いくつかやらなければならないことがあります。
|
1.
|
Webアプリケーションの準備
| |
第3回 JavaBeansからWebサービスを作ると同じ手順で、Webプロジェクトを作成してください。 | |
2.
|
データベース情報保存フォルダーの作成
| | Webプロジェクト上に、データベースの情報を入れるためのフォルダーを作ってください。ここでは、wsvcWebプロジェクトの直下に「database」というフォルダーを作りました。 | |
3.
|
DADXグループの作成
| | DADXは、DB2をWebサービス化するツール「WORF(WebServices Object RunimteFramework)」に、「このDB2をこういうSQL文でWebサービス化せよ」と指示するためのファイルです。WORFは、DADXグループという単位で稼動します。DADXグループを作成するには、以下の手順で行います。 | |
| | 1. | メニューから「File」?「New」?「Other」を選択。 | | 2. | ウィザードで「Web Services」?「Web Service DADX Group Config」を選択。 | | 3. | Webプロジェクトを選択して「Add group」ボタンを押して名前を指定(ここでは「dadx」と)。 | | 4. | 作成したグループを選択し、「Group properties」ボタンを押す。 | | 5. | DATABASE_NAMEの部分を「SAMPLE」と書き換えてください。 | | 6. | DB2にアクセスするためのUserID・Passwordを指定して閉じます。 | | 7. | 「Finish」ボタンを押して、DADXグループの追加を完了します。 |
|
3. SQLステートメントa 作成
まず、SQLステートメントを作ります。ここでは、ウィザードを使って、DB2に接続してSQLステートメントを作ってみましょう。メニューから「File」?「New」?「Other」を開き、「Data」?「SQLStatement」を選びます。
DB2にアクセスするためのユーザーID・パスワードを指定します。
利用する表(ここではEMPLOYEEとDEPARTMENT)を追加します。
Columnsタブで、カラム「EMPNO」、「FIRSTNME」、「LASTNAME」、「DEPTNAME」を追加します。
Joinsタブで、「WORKDEPT」を「DEPTNO」にドラッグして接続します。
Conditionsタブを開き、図のように入力します。Value以外のセルは、一覧から選択します。
Orderタブを開いて、EMPNOを追加します。これで、社員番号でソートされます。
SQLステートメントを確認し、「Exceute」ボタンを押します。
再度「Exceute」ボタンを押すと、ホスト変数を入力するウィンドウが出ます。'000099' と '000200'を指定して、「Finish」ボタンを押しましょう。
検索結果が表示されます。
「Close」を押して、ウィザードに戻り、「Finish」を押して、SQLステートメントの作成を完了します。
4. DADXファイルの生成
DADXファイルの生成は簡単です。「File」?「New」?「Other」で「XML」?「XMLfrom SQL query」を選択し、「Create DADX from SQL query」を選択します。簡単なので、ウィザードは省略します。ただし、ファイル名は、いつも同じ「NewDadx.dadx」となってしまうので、必ず変更します。また、出力先フォルダーは、必ずDADXグループのフォルダー(ここでは、wsvcWeb/source/group/dadx)を指定します。
5. Webサービス化
DADXファイルができたら、Webサービスにします。「File」?「New」?「Other」で「WebServices」?「Web Service」を選択し、Web Service typeを「DADX Web service」に、Webprojectを正しく指定して、次の画面で先ほど生成したDADXファイルを指定します。あとは、ほかのWebサービスと同じです。
6. プロキシーの解説
プロキシーには、JavaのSOAPサービスと同様にコンストラクター、setEndPoint、getEndPointのほかにサービスを呼び出すメソッドが作成されます。メソッドには、サービスの名前と同じメソッドの他に、名前の後ろにアンダーバー(_ )が付いたものも生成されます。
- サービス名( )
出力として、自動生成されたJavaBeanが戻るメソッドです。JavaBeanは、出力として指定したカラムが含まれるような自動生成されたJavaBeanであり、mappingsパッケージに作られます。
- サービス名_( )
サービス名にアンダーバーが追加されたメソッド名のメソッドでは、w3c.org.dom.Elementが戻されます。DOMオブジェクトが戻るので、旧来のXML処理と同じ方法でデータを扱うことができます。
「第7回 SOAPメッセージを覗いてみよう」へ
著者について  | |  | 1987年に日本アイ・ビー・エム入社。メインフレームOS、ミドルウェアの障害対応、障害解析ソフトウェアの開発、ワークフローシステム開発、オブジェクト指向開発、Web開発など経験。2000年より、ソフトウェアのテクノロジーエバンジェリストとして活動中。 |
記事の評価
|