サーブレットと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を使うためには、以下の条件があるので確認してほしい。
- IBM WebSphere Application Server V3.5 には「スタンダード版」、「アドバンスド版」「エンタープライズ版」の3種類があるが、EJBが利用できるのはアドバンスド版とエンタープライズ版である
- 実行にはRDBが必要である。今回は「IBM DB2 UDB V7.1」+FixPak1 を利用する
- 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が自動生成してくれる。人間がコードを入力しなければいけないのは、ほとんどの場合ビジネスロジックである。手順は次のようなものだ。
- ソフトウェアをすべてセットアップする
- VAJに必要なフィーチャー(機能)を追加する
- ワークベンチから[ファイル]→[クイックスタート]を開く
- 左側リストから[フィーチャー]を選択し、右側のリストから[フィーチャーの追加]を選択し、 次のフィーチャーを追加する
- 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
- プロジェクトを作成する(EJBグループ作成時に同時作成可能)
- EJBグループを作成する(JARファイルの単位となる)
- Beanを追加する(ウィザード)
- CMPエンティティBeanにおいては次のことを行う
- CMPフィールドを追加する
- データベース・スキーマとマッピングを生成する
- BMPエンティティBeanにおいては次のことを行う
- フィールドを追加する
- フィールドのアクセサ・メソッドを追加する(getXXX、setXXX:フィールド追加時にウィザードで自動生成可能
- フィールドのアクセサ・メソッドをリモート・インターフェイスに追加する
- ejbLoad、ejbSave、ejbCreate、ejbRemoveなどのコールバック・メソッドを実装し、フィールドをDBにマッピングするコードを記述
- ファインダー・メソッド(findXXX)を追加
- ファインダー・メソッドをHomeインターフェイスに追加する
- セッション・ビーンにおいては次のことを行う
- フィールド、アクセサ、メソッド等の追加、リモート・インターフェイスへの追加をする
- ejbCreate、ejbRemove、ejbActivate、ejbPassivateなどのコールバック・メソッドを実装する
- CMTを使うステートフル・セッションBeanにおいて、必要であればSessionSynchronizationをimplementsし、beginAfter、beforeCompletion、afterCompletion等のコールバック・メソッドを実装する
- 必要に応じてプロパティ(ディプロイメント・ディスクリプタに反映される)を設定する
- 配置JARファイルにエクスポートする場合や、WTE(WebSphere Test Environment)でテストを行う場合は「配置コードの生成」を行う
- アクセスBeanが必要なら、アクセス・Beanの生成を行う
- VAJ上でテストを行うなら、次の手順で行う
- EJBグループを[追加先]→[サーバ構成]にてテストサーバに追加する
- 追加したサーバのプロパティ設定をする
- CMPに対応するデータベース表を作成する(メニューから可能)
- WebSphereテスト環境コントロール・センターを開き、パーシスタンス・ネームサーバを開始する
- テストサーバを開始する
- ビーンのテスト・クライアントを起動してテストする
- EJBグループを右クリックして[エクスポート]→[配置JAR]で、配置JARファイルにエクスポートする
- WASの管理コンソールから配置JARファイルをEJBコンテナに登録する
Copyright © ITmedia, Inc. All Rights Reserved.