[トライアル版連動企画]
Webアプリケーションの作成が一通り理解できる基礎講座


初めてJavaを使ってWebアプリケーションを構築するプログラマのために、アプリケーションサーバの環境構築からServlet、JSP、さらに踏み込んだところでEJBによるプログラミング、デバッグの方法などを計5回の連載で解説します。
一通り学び終わると、Webアプリケーションプログラミングの全体がすっきり見渡せるようになります。
藤井 等
ボーランド株式会社
2001/1/17

第3回 EJBの作成手順を覚えよう

 第3回は、いよいよEJBを開発する。季節柄(?)、賽銭箱Beanを作成し、ブラウザクライアントからアクセスしてみよう。開発には、JBuilder 4 Entepriseを用いる。製品をお持ちでない方もトライアル版で実際に試すことができるので、是非、前回の記事を参考にして入手してほしい。

 なお、今回の学習に使用するプログラムファイルはmyfirstejb.zipである。ファイル名をクリックしてダウンロードしてほしい。

 EJB開発のためのJBuilder 4 Enterpriseの設定

 JBuilder 4 EnterpriseでEJBの開発を行うには、Inprise Application Server(IAS)の統合設定が必要である。JBuilderを起動したら、[ツール|エンタープライズの設定]メニューを実行する。[CORBA]ページの[設定の選択]項目で、VisiBrokerを選択し[編集]ボタンを押す。ここで、以下の項目を設定する。

項目
設定
ORBツールへのパス IAS 4.1インストールディレクトリ下の bin/
必要なライブラリ […]ボタンを押して、IAS 4.1インストールディレクトリ下のlib/にあるファイルを選択する。名称は、IAS 4.1などと設定する

画面1 新規ライブラリの定義 (クリックすると拡大します)

 次に、[アプリケーションサーバー]ページを表示し、[IASインストールディレクトリ]を指定して、[統合]をチェックする。

画面2 アプリケーションサーバの設定 (クリックすると拡大します)

 [OK]ボタンを押してダイアログを閉じ、JBuilderを再起動する。

 セッションBeanの開発

■ウィザードの実行

 [ファイル|新規プロジェクト]メニューを実行して、新規プロジェクトを作成する。プロジェクト名などを指定して次のステップへ進み、[必須ライブラリ]にInprise Application Server 4.1ライブラリを追加する。最後のステップでプロジェクトの情報を入力したら、[終了]ボタンを押す。

 次に、EJBグループを作成する。EJBグループは、EJBを配布単位で管理する。配布ディスクリプタを管理し、EJBの配布に用いるJARファイルを自動生成する。

 [ファイル|新規]メニューを実行し、「オブジェクトギャラリー」の[エンタープライズ]ページから、[EJBグループ]を選択する。

画面3 EJBグループウィザード (クリックすると拡大します)

 [名前]を設定すると、同名のJARファイルの生成が設定される。ウィザードを終了すると、プロジェクトペインにEJBグループが追加され、内容ペインに配布ディスクリプタエディタが表示される。

 次に、[ファイル|新規]メニューを選択し、[Enterprise JavaBean]ウィザードを実行する。最初のステップでは、作成したEJBグループを選択する。次に、クラス情報を入力する。

項目
パッケージ myfirstejb
クラス名 SaisenbakoBean
親クラス java.lang.Object
オプション STATELESSセッションBean

画面4 Enterprise JavaBeanウィザード (クリックすると拡大します)

 最後のステップでは、ホームインターフェイス、リモートインターフェイスなどの名前を設定する。ここでは、すべてデフォルトの設定を適用する。

Beanデザイナーによる設計

 このSaisenbakoBeanには、賽銭の合計金額を保持するプロパティを定義する。内容ペインの[Bean]タブをクリックして、Beanデザイナーを起動する。[プロパティ]ページを表示して、[プロパティの追加]ボタンを押す。

画面5 プロパティの追加 (クリックすると拡大します)

 ここでは、次のように項目を設定する。

項目
プロパティ名 amount
double
Getter (チェックする)
Setter (チェックしない)

 次に、[ソース]タブをクリックして、メソッドを追加する。追加するメソッドは、賽銭をするpay()メソッドである。

public void pay(double fee) {
  amount += fee;
}

 定義したメソッドは、リモートクライアントからアクセスできるように、リモートインターフェイスで公開しなければならない。これを行うには、Beanデザイナーを用いる。[Bean] - [メソッド]タブをクリックして、定義したメソッドのチェックボックスにチェックを入れる。ここでは、void pay(double) と double getAmount() にチェックを入れる。

画面6 リモートインターフェイスの定義 (クリックすると拡大します)

 この結果、リモートインターフェイスのSaisenbako.javaが以下のように更新される。

package myfirstejb;

import java.rmi.*;
import javax.ejb.*;

public interface Saisenbako extends EJBObject {
  public void pay(double fee) throws RemoteException;
  public double getAmount() throws RemoteException;
}

 以上でBeanの作成は完了である。続いて、Inprise Application Server用のスタブの生成を設定する。プロジェクトペインで、ホームインターフェイスSaisenbakoHome.javaを選択して、マウスの右ボタンを押し、[プロパティ]メニューを選択する。

画面7 スタブの生成 (クリックすると拡大します)

 [ビルド]-[VisiBroker]ページを表示し、[IIOP]の生成をチェックする。これによって、メイク時にスタブが生成される。

■配布ディスクリプタの定義

 作成したEJBに対する、配布ディスクリプタの定義を行う。プロジェクトペインで、EJBグループを選択し、配布ディスクリプタエディタを表示する。
 構造ペインで、[SaisenbakoBean]項目下を表示し、[Container Transactions]を選択する。内容ペインで、[Add]ボタンを押し、新しいトランザクション属性定義を追加する。

項目
Interfafe *
Method *
Transaction attribute Required

画面8 配布ディスクリプタの設定 (クリックすると拡大します)

 この設定によって、SaisenbakoBeanのホームインターフェイス、リモートインターフェイス双方のすべてのメソッドで、すでにトランザクションコンテキストがあればそれを利用し、なければ新規に作成するというモードによるトランザクション処理が行われる。

 配布ディスクリプタエディタは、次のようなXMLファイルを自動生成し、JARファイルに追加する。

<?xml version="1.0" encoding="MS932"?>

<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>


<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>SaisenbakoBean</ejb-name>
<home>myfirstejb.SaisenbakoHome</home>
<remote>myfirstejb.Saisenbako</remote>
<ejb-class>myfirstejb.SaisenbakoBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>SaisenbakoBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>


クライアントの開発

JBuilderで学ぶWebアプリケーション構築(第2回)
■EJB開発のためのJBuilder4 Enterpriseの設定
■セッションBeanの設定

  ウィザードの実行
  Beanデザイナーによる設計
  配布ディスクリプタの定義  
  ■クライアントの開発
  EJBテストクライアントウィザードを使う
  JSP Beanを作成する
  JSPを作成する
  ■アプリケーションの実行
  EJBコンテナの起動
  JSPの実行
  Interbase Application Serverへの配布


連載記事一覧




Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間