データベースアクセスの Web サービス化 (その1: 実行環境のセットアップとサンプルの実行)

追加のソフトウェアを購入することなく、DB2/400 からの検索を Web サービス化して、結果を XML 文書として受け取ることが可能です。
Web サービスのためのコーディングも必要なく、DADX という形式で XML ファイルを作成し、中にオペレーションと SQL 文を書くだけで Web サービスとして使用できるようになります。
SQL 文を直に指定するだけでなく、XML エクステンダーを使用して DAD ファイルを指定するという形で実現することもできます。(つまり、SQL 文を指定するだけのシンプルな形では XML エクステンダーは必要ありません)

XML エクステンダーと組みあわせて使用するやり方はまた時間を見つけてやってみたいとは思いますが、
とりあえず SQL 文の実行結果を XML 文書で受け取る、というシンプルな形の Web サービスを実行させてみたいと思います。

DB2 共通の機能である WORF (Web Services Object Runtime Framework) を使用します。

WORF を使用するには Tomcat や WebSphere などの Web コンテナが必要になります。
今回はシンプルにトライしてみようということで PC に Tomcat 5.0.19 を導入し、JTOpen の JDBC ドライバを設定した環境で実行してみてます。
Tomcat を実行する Java 実行環境は 1.4.2、アクセスする iSeries は OS/400 V5R2 になっています。


セットアップ

services.war のコピー

Web Services Object Runtime Framework for DB2 をダウンロードして、解凍されたファイルの中から services.war を webapps ディレクトリにコピーします。
WORF を実行するサーブレットの設定等が行われます。

依存クラスのコピー

Tomcat の common/lib サブディレクトリに worf.jar をコピーします。また、WORF を動かすための activation.jar/mail.jar/soap.jar も同時にコピーします。
さらに JTOpen の JDBC ドライバーで iSeries にアクセスするため、jt400.jar もコピーします。

セットアップの確認

Tomcat を起動して、"services" Web アプリケーションをアクセスしてみましょう。
以下の画面が出てくれば、とりあえずセットアップは OK です。

稼動の確認

上記の services Web アプリケーションのいくつかのリンクは、V5R1 以降の OS/400 であれば、ちょっとしたセットアップをすれば動きます。
WORF を使用した DB2/400 アクセスの実行を確認するために、その「ちょっとしたセットアップ」をやってみましょう。

DADX グループの作成

WORF の中から、どの iSeries に接続するか、どのユーザーで接続するか、デフォルトのライブラリは何か、といった設定を行う必要があります。
この設定は Web サービスを記述する DADX ファイルのグループごとに指定することが可能になっています。

WEB-INF サブディレクトリの groups サブディレクトリに、DADX ファイルをグループ化するためのサブディレクトリを作り、その中に group.properties というファイルを作成します。

DADX グループの設定

group.properties ファイルはこんなかんじで作ります。

group.properties
initialContextFactory=
datasourceJNDI=
dbDriver=com.ibm.as400.access.AS400JDBCDriver
dbURL=jdbc:as400://as400e/sample
userID=DB2USER
password=PASSWORD
namespaceTable=namespacetable.nst
autoReload=true
reloadIntervalSeconds=5
groupNamespaceUri=http://schemas.ibm.com/sample
enableXmlClob=true 

JDBC ドライバーのクラス名や、アクセス先の URL、接続に使用するユーザー/パスワードなどで、特に難しいことはないですよね。

サンプルデータベースの作成

V5R1 から、サンプルデータベースを CREATE_SQL_SAMPLE というストアド・プロシージャを実行することで作成できるようになっています。

データベースの内容はこんなかんじです。
WORF での実行結果を確認するために "PLANNING" という部門名に "(計画部門)" と入れてみました。

実行の確認

最初のページの 2段目にある list.dadx の TEST というリンクをクリックしてみましょう。以下のような結果がでてきます。

URL を見てみてください。
http://<ホスト名>/<Web アプリケーションのコンテクスト>/<DADX グループのディレクトリ名>/<DADX のファイル名>/TEST になっているのがわかりますね。
この URL をそのままブラウザーでアクセスしても同じ画面になります。

ここでは例を載せていませんが、http://<ホスト名>/<Web アプリケーションのコンテクスト>/<DADX グループのディレクトリ名>/<DADX のファイル名>/WSDL で WSDL の動的生成と表示を行うこともできます。

[Top Pageに戻る]

Ads by TOK2