IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  WebSphere | SOA and Web services  >

WSADで Webサービスを作ってみよう!: 第6回 DB2からWebサービスを作る

WebSphere Studio Application Developer

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません


レベル: 初級

米持 幸寿, テクノロジー・エバンジェリスト, 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グループの追加を完了します。

Web Service DADX Group Configuration画面

DADX Group Property画面



上に戻る


3. SQLステートメントa 作成

まず、SQLステートメントを作ります。ここでは、ウィザードを使って、DB2に接続してSQLステートメントを作ってみましょう。メニューから「File」?「New」?「Other」を開き、「Data」?「SQLStatement」を選びます。


Create a New SQL Statement画面1

DB2にアクセスするためのユーザーID・パスワードを指定します。


Create a New SQL Statement画面2

利用する表(ここではEMPLOYEEとDEPARTMENT)を追加します。


Create a New SQL Statement画面3

Columnsタブで、カラム「EMPNO」、「FIRSTNME」、「LASTNAME」、「DEPTNAME」を追加します。

Joinsタブで、「WORKDEPT」を「DEPTNO」にドラッグして接続します。


Create a New SQL Statement画面4

Conditionsタブを開き、図のように入力します。Value以外のセルは、一覧から選択します。


Create a New SQL Statement画面5

Create a New SQL Statement画面5-Value

Create a New SQL Statement画面6

Orderタブを開いて、EMPNOを追加します。これで、社員番号でソートされます。


Create a New SQL Statement画面7

SQLステートメントを確認し、「Exceute」ボタンを押します。


Create a New SQL Statement画面8

再度「Exceute」ボタンを押すと、ホスト変数を入力するウィンドウが出ます。'000099' と '000200'を指定して、「Finish」ボタンを押しましょう。


Specify Variable Values画面

検索結果が表示されます。


Execute SQL Statement画面

「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サービスと同じです。


Web Service画面



上に戻る


6. プロキシーの解説

プロキシーには、JavaのSOAPサービスと同様にコンストラクター、setEndPoint、getEndPointのほかにサービスを呼び出すメソッドが作成されます。メソッドには、サービスの名前と同じメソッドの他に、名前の後ろにアンダーバー(_ )が付いたものも生成されます。

  • サービス名( )
    出力として、自動生成されたJavaBeanが戻るメソッドです。JavaBeanは、出力として指定したカラムが含まれるような自動生成されたJavaBeanであり、mappingsパッケージに作られます。
  • サービス名_( )
    サービス名にアンダーバーが追加されたメソッド名のメソッドでは、w3c.org.dom.Elementが戻されます。DOMオブジェクトが戻るので、旧来のXML処理と同じ方法でデータを扱うことができます。

「第7回 SOAPメッセージを覗いてみよう」へ



著者について

1987年に日本アイ・ビー・エム入社。メインフレームOS、ミドルウェアの障害対応、障害解析ソフトウェアの開発、ワークフローシステム開発、オブジェクト指向開発、Web開発など経験。2000年より、ソフトウェアのテクノロジーエバンジェリストとして活動中。




記事の評価


サイト改善のため、ご意見をお寄せください。こちらのフォームからお願いいたします。



はいいいえわからない
 


 


12345
不充分・不完全である大変素晴らしい
 


この記事を共有する

はてなブックマーク はてなブックマーク livedoorクリップ livedoorクリップ del.icio.us del.icio.us Buzzurl(バザール) Buzzurl(バザール) Choix! Choix!
Saafブックマーク Saafブックマーク FC2ブックマーク FC2ブックマーク MM/memo MM/memo ニフティクリップ ニフティクリップ Yahoo!ブックマーク Yahoo!ブックマーク
CZブックマーク CZブックマーク newsing newsing




上に戻る


    日本IBMについて プライバシー お問い合わせ