第2回:ステートレスセッションBeanでの実装 (3/3)

EJB 3を再考する
EJB 3を再考する

第2回:ステートレスセッションBeanでの実装

著者:レッドハット  田澤 孝之   2007/10/12
前のページ  1  2  3
ステートレスセッションBeanでの実装

   さて、POJOで実装した銀行処理をEJBにしてみましょう。とはいっても、ここで構える必要はもうありません。

   まずPOJOで記述したインターフェースBankControlに、アノテーション@Remoteをクラスに定義(1)します。このEJBはEJBクライアントから呼び出すためにリモートインターフェースが必要になります。もしWebコンテナからのみ利用する場合は@Localと記述することができます。EJB仕様ではこのインターフェースを特にビジネスインターフェースと呼びます。
インターフェース BankControl.java
import javax.ejb.Remote;

@Remote                                                ←(1)
public interface BankControl {

   public Account deposit(Account account, int amount);
   public Account withdraw(Account account, int amount);

}

   次にEJBの実装クラスBankControlBeanです。このEJBは状態を保持しない設計とするので、ステートレスセッションBeanを適用します。したがって、@StatelessアノテーションをBankControlBeanクラスに定義(1)します。

実装クラスBankControlBean.java
import javax.ejb.Stateless;

@Stateless                                                ←(1)
public class BankControlBean implements BankControl {

   public BankControlBean() {
   }

   public Account deposit(Account account, int amount) {
      account.setBalance(account.getBalance() + amount);
      return account;
   }

   public Account withdraw(Account account, int amount) {
      account.setBalance(account.getBalance() - amount);
      return account;
   }

}

   これでEJBは完成です。

   このように、EJB 3は通常のJavaクラス(POJO)を実装することとさほど変わりません。EJB 1.x、EJB 2.xで存在していたホームインターフェースやデプロイメント記述子はもう必要ないのです。


EJB 3のビルドとJBoss EAPへのデプロイ

   ここではEJBをJBoss Enterprise Application Platform 4.2.0(以下、JBoss EAP)にEJBをデプロイしてみます。JBoss EAPのインストールについては以下の事を参考にしてください。


   作成したEJB 3はコンパイル後に、仕様に基づきパッケージ化する必要があります。しかし、あまり難しく考えることはありません。javacコマンドを利用して作成したクラスをコンパイルし、jarコマンドを利用してJARファイルにアーカイブするのみです。一般的にこのプロセスはAntを利用するのがよいでしょう。

   以下にビルドファイルの例を示します。

Antビルドファイル build.xml
Antビルドファイル build.xml
(画像をクリックすると別ウィンドウに拡大図を表示します)

   このビルドファイルを用いてmainターゲット(1)を実行するとbuild/jarsディレクトリにejb3bankapp.jarが作成されます。なお、コンパイル時のクラスパスにはサーバディレクトリのlibディレクトリにあるすべてのJARファイルを指定してください。

>ant main

   生成されたejb3bankapp.jarを展開すると以下のようになります。

EJB JARファイルのディレクトリ構成
図4:EJB JARファイルのディレクトリ構成

   次にdeployターゲット(2)を実行するとJBoss EAPのdeployディレクトリにejb3bankapp.jarがコピーされ自動的にデプロイされます。

>ant deploy

   JBoss EAPのデプロイはサーバディレクトリにあるdeployディレクトリにJARファイルをコピーするのみです。デプロイが正常に完了すると、コンソールに以下のメッセージが表示されます。

デプロイメッセージ
図5:デプロイメッセージ
(画像をクリックすると別ウィンドウに拡大図を表示します)

   次回はデプロイが完了したEJBにリモートクライアントからアクセスしてみます。さらにステートフルセッションBeanも利用してみます。

前のページ  1  2  3


レッドハット株式会社 田澤 孝之
著者プロフィール
レッドハット株式会社  田澤 孝之
JBossグループ SE部 マネージャー
1989年より日立製作所にてIT業界に身をおく。1998年より日本BEAシステムズにてTPモニタ、サーバサイドJavaにフォーカス。特にJ2EEに特化しプリセールス、インストラクタ、SOAコンサルタント業務に従事。2006年よりファストサーチ&トランスファで企業向けサーチソリューションコンサルタントを経て、2007年よりレッドハットにてJBossの販売提案と導入技術支援を行う。「EJB 2.0 徹底攻略」(技術評論社)など著書、共著多数。


INDEX
第2回:ステートレスセッションBeanでの実装
  EJB 3という選択肢
  銀行の入出金処理
ステートレスセッションBeanでの実装
EJB 3を再考する
第1回 EJBのすべてを知る
第2回 ステートレスセッションBeanでの実装
第3回 ステートフルセッションBeanでの実装
関連記事
JBoss Enterprise Application Platformの全貌
DIxAOPコンテナ「Seasar2とSpring」

人気記事トップ10

人気記事ランキングをもっと見る