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

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

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

演習の準備と手順

 今回の記事の目的は、ServletからどうやってEJBを使うかに置いているため、EJBの詳しい解説は省くことにする。EJBについては「サーバサイドJavaにおけるEJBの効果的な利用(前編)(後編)」を参照してほしい。

 今回は、前編で作成したサーブレットと、JSPで作られたプログラムのバックエンドにEJBを配置し、サーブレットとEJBの連携をどうしたらよいかについて理解していただく。前回のプログラムは、Webブラウザで開いたページにユーザIDとパスワードを入力すると、以下のような結果を表示するものだった。

 これを実現するプログラムを、はじめはサーブレットだけで作成し、次にJSPを使いビジネスロジックとユーザーインターフェイスを分けて実装する方法を紹介した。今回は、このプログラムのバックエンドにEJBを置き、データベースに接続する。

 ところで、有用なEJBアプリケーションをデザインするには、巨大なEJBの仕様全体をほぼ理解する必要がある。さらに、JTA(Java Transaction API)、JDBC、RDBの振る舞いなど、関連する豊富な知識が必要だ。EJBでアプリケーションをデザインするなら、本腰をいれて学習する必要があるだろうし、さまざまな経験も必要だと思う。では、早速手順に入ろう。

サーバのセットアップ

 今回使用するサーバの環境は、前編と基本的に同じと考えていただいてよいが、EJBを使うためには、以下の条件があるので確認してほしい。

  1. IBM WebSphere Application Server V3.5 には「スタンダード版」、「アドバンスド版」「エンタープライズ版」の3種類があるが、EJBが利用できるのはアドバンスド版とエンタープライズ版である
  2. 実行にはRDBが必要である。今回は「IBM DB2 UDB V7.1」+FixPak1 を利用する
  3. VisualAge for Java V3.5でEJB開発を行う場合には「エンタープライズ版」が必要である

 前編では、Java ServletとJSPのみを使ったので、「WebSphere Application Server V3.5 スタンダード版」でも試せた。前回の記事でスタンダード版を導入してしまった読者の方は、申し訳ないがアドバンスド版を再導入していただく必要がある。評価版を次のサイトからダウンロードできる。

http://www.jp.ibm.com/software/download.html

一般的な開発の手順

 WAS+VAJでEJBの開発を行う場合、同じルールで繰り返しコーディングしなければいけないような部分は、ほとんどVAJが自動生成してくれる。人間がコードを入力しなければいけないのは、ほとんどの場合ビジネスロジックである。手順は次のようなものだ。

  1. ソフトウェアをすべてセットアップする
  2. VAJに必要なフィーチャー(機能)を追加する
    1. ワークベンチから[ファイル]→[クイックスタート]を開く
    2. 左側リストから[フィーチャー]を選択し、右側のリストから[フィーチャーの追加]を選択し、 次のフィーチャーを追加する
    • IBM EJB Development Environment 3.5
    • IBM EJB Samples 3.5
    • IBM WebSphere Java Libraries 3.5
    • IBM WebSphere Test Environment 3.5
    • IBM XML Parser for Java 2.0.15
  3. プロジェクトを作成する(EJBグループ作成時に同時作成可能)
  4. EJBグループを作成する(JARファイルの単位となる)
  5. Beanを追加する(ウィザード)
  6. CMPエンティティBeanにおいては次のことを行う
    1. CMPフィールドを追加する
    2. データベース・スキーマとマッピングを生成する
  7. BMPエンティティBeanにおいては次のことを行う
    1. フィールドを追加する
    2. フィールドのアクセサ・メソッドを追加する(getXXX、setXXX:フィールド追加時にウィザードで自動生成可能
    3. フィールドのアクセサ・メソッドをリモート・インターフェイスに追加する
    4. ejbLoad、ejbSave、ejbCreate、ejbRemoveなどのコールバック・メソッドを実装し、フィールドをDBにマッピングするコードを記述
    5. ファインダー・メソッド(findXXX)を追加
    6. ファインダー・メソッドをHomeインターフェイスに追加する
  8. セッション・ビーンにおいては次のことを行う
    1. フィールド、アクセサ、メソッド等の追加、リモート・インターフェイスへの追加をする
    2. ejbCreate、ejbRemove、ejbActivate、ejbPassivateなどのコールバック・メソッドを実装する
    3. CMTを使うステートフル・セッションBeanにおいて、必要であればSessionSynchronizationをimplementsし、beginAfter、beforeCompletion、afterCompletion等のコールバック・メソッドを実装する
  9. 必要に応じてプロパティ(ディプロイメント・ディスクリプタに反映される)を設定する
  10. 配置JARファイルにエクスポートする場合や、WTE(WebSphere Test Environment)でテストを行う場合は「配置コードの生成」を行う
  11. アクセスBeanが必要なら、アクセス・Beanの生成を行う
  12. VAJ上でテストを行うなら、次の手順で行う
    1. EJBグループを[追加先]→[サーバ構成]にてテストサーバに追加する
    2. 追加したサーバのプロパティ設定をする
    3. CMPに対応するデータベース表を作成する(メニューから可能)
    4. WebSphereテスト環境コントロール・センターを開き、パーシスタンス・ネームサーバを開始する
    5. テストサーバを開始する
    6. ビーンのテスト・クライアントを起動してテストする
  13. EJBグループを右クリックして[エクスポート]→[配置JAR]で、配置JARファイルにエクスポートする
  14. WASの管理コンソールから配置JARファイルをEJBコンテナに登録する

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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