連載
» 2000年12月19日 00時00分 公開

サーブレットとEJBの連携Java Servlet徹底解説(後編)(5/7 ページ)

[米持幸寿,日本アイ・ビー・エム]

ビジネスロジックの実装(1)

 さて、次はいよいよ今回の話題の中心であるEnterpriseBeanの実装に入る。準備はいいだろうか。

 EnterpriseBeanの実装をすべて手動で行うのは大変なので、VAJ(IBM VisualAge for Java V3.5 エンタープライズ版)を使って開発することにする。

エンティティBeanの作成、DB表の作成、テスト

 まずわかりやすいところでエンティティBeanから作っていくことにしよう。

 VAJのEJBページを開き、[EJB]→[追加]→[EJBグループ]と選択するか、EJBグループ追加のボタンを押し、プロジェクト名とEJBグループの名前を入力する。これによって、VAJのプロジェクトが作られ、その中にEJBグループが作成される。

 EJBグループとは、EJBをJARファイルにするときの単位である。次に、このEJBグループにエンティティBeanを追加しよう。作成されたEJBグループを右クリックして、[追加]→[エンタープライズBean]を選択する。

 画面の通り、Bean名に「userinfoEntity」、Bean型に「コンテナー管理の永続性(CMP)フィールドを持つ実体Bean、パッケージに「atmarkit2.ejb」を指定して、[次へ]を押す。

 Beanクラスの属性およびインターフェイスの定義画面にて、CMPフィールドを追加する。[追加]ボタンを押す。

 フィールド名「userid」、フィールドの型「String」を指定し、「キー・フィールド」をチェックして[CMPフィールドの作成および続行]ボタンを押す。

 ここで追加し忘れたり、後でプロパティが増えた場合でも、エンティティ・Beanのアイコンを右クリックして[追加]→[CMPフィールド]とすることでCMPフィールドはいつでも追加することができる。

 CMPフィールドとして追加されたフィールドは、自動的にプロパティの設定(ディプロイメント・ディスクリプタに反映される)と、リモートインターフェイスへの追加が行われるので、非常に楽に作業ができる。

 同様に、フィールド名「password」、フィールドの型「String」を指定して[終了]を押す。前の画面に戻るので、終了を押すとBeanが作成される。

 次にデータベース表を作成しよう。スタートニューから[プログラム]→[IBM DB2]→[コントロール・センター]を開き、データベースのフォルダを右クリックして[作成]→[データベース]を選択して、データベース「ATMARKIT」を作成する。DB2のコマンドウィンドウから「CREATE DB ATMARKIT」とやってもよい。

 次にやらなければいけないのはデータベースマッピングの作成と配置コードの作成である。EJBグループのアイコンを右クリックして、[追加]→[EJBグループからスキーマおよびマップ]を選ぶとマッピング情報が、[配置コードの生成]を選ぶと配置コードが生成される(注:配置コードとは、EJBコンテナに依存するスタブ、スケルトン、DBアクセスコードなどのプログラムファイルであり、コンテナに付属するツールでこれを行う)。

 VAJでエンティティBeanのDB表を作成するには、テスト用のサーバに登録する必要がある。EJBグループのアイコンを右クリックして[追加先]→[サーバー構成]と選択するとサーバ・インスタンスがEJBサーバ構成に追加される。

 追加されたEJBサーバを右クリックして「プロパティ」を開き、データソース名に「jdbc:db2:atmarkit」、ユーザID/パスワードにDB2にアクセスする場合のユーザID(例えば、DB2ADMIN)などを指定してOKを押す。

 次いで[EJBサーバー]を右クリックして[データベース表の作成]を押すと、表(ここではUSERINFOENTITY)が作成される。

 さあ、これで実行の準備ができた。VAJを使って稼働テストをしてみよう。稼働テストは、最初に紹介したように次の手順を行う。

  1. WebSphereテスト環境コントロール・センターを開き、パーシスタンス・ネームサーバを開始する
  2. テストサーバを開始する
  3. ビーンのテスト・クライアントを起動する
  4. ルックアップボタンを押してルックアップを行う
  5. createを選択してパラメータ(ここではユーザID)を指定して右クリックして「呼び出し」
  6. setPasswordを右クリックしてパラメータ(ここではパスワード)を指定して右クリックして「呼び出し」

 これらの手順がすべてうまくいけば、データベース表に行が追加されるはずだ。

 DB2コマンド行プロセッサを開いて、確認してみよう。

ということで、CMPエンティティBeanは、コーディング無しで出来上がった。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。