PR

ステートレスセッションBeanでの実装

2007年10月12日(金)
田澤 孝之

ステートレスセッション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も利用してみます。

レッドハット株式会社

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

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています

ステートレスセッションBeanでの実装 | Think IT(シンクイット)

Think IT(シンクイット)

サイトに予期せぬエラーが起こりました。しばらくたってから再度お試しください。