Interstage Application Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第3部 EJB編> 第11章 Session Beanの実装

11.6 Enterprise Beanクラスの作成

 Enterprise Beanクラスは、ユーザがインタフェースで定義した ejbCreateメソッドおよびビジネスメソッドを実装します。
 Apworksを使用して開発を行った場合、ApdesignerまたはコンポーネントデザイナによりEnterprise Beanクラスのひな形が自動生成されます。

 以下に、Enterprise Beanクラスの記述の形式を示します。

■ 記述形式

      public class   Enterprise Bean名
             extends Object
             implements javax.ejb.SessionBean
      {
          ・・・
          // startup work
          public void ejbCreate(任意の引数) 
          throws javax.ejb.EJBException, 
          javax.ejb.CreateException {
                  ・・・
          }

          // business method
          public  任意の返却値  ビジネスメソッド(任意の引数) 
          throws javax.ejb.EJBException {
                 ・・・
          }
          ・・・
      }

■ 規約

 Enterprise Beanクラスは以下の規約を満たしていなければなりません。

 ejbCreateとビジネスメソッドには、以下の規約があります。

◆ ejbCreateの規約

 ejbCreateは以下の規約を満たしていなければなりません。

◆ ビジネスメソッドの規約

 ビジネスメソッドは以下の規約を満たしていなければなりません。

■ その他のメソッドについて

 ejbCreateとビジネスメソッド以外に、Enterprise Beanクラスには、コンテナが処理の各フェーズで呼び出す以下のメソッドがあります。
 以下のメソッドにはユーザが任意の処理を指定できます。以下のメソッドはすべて省略できません。

 以下に使用できるメソッドの一覧を示します。

メソッド名

内容

setSessionContext

コンテナによって保守されているコンテキストへのアクセスを与えます。

ejbPassivate

EJBアプリケーションのインスタンスが二次領域(注1)に退避されるときに呼び出されます(ただし本バージョンでは呼ばれません)。

ejbActivate

EJBアプリケーションのインスタンスが二次領域から復元されるときに呼び出されます(ただし本バージョンでは呼ばれません)。

ejbRemove

EJBアプリケーションのインスタンスが終了するときに呼び出されます。

注1) EJBアプリケーションのインスタンスを退避するための領域

◆ SessionContextインタフェースのメソッド

 SessionContextは、コンテナによって保守されているコンテキストへのアクセスを与えます。
 このインタフェースは、setSessionContextのパラメタとして指定することにより取得できます。それにより SessionContextより拡張される EJBContextインタフェースのメソッドを使用できます。

 以下に使用できるメソッドの一覧を示します。

メソッド名

内容

getEJBObject()

現在インスタンスに関連付けられている EJB objectの参照を取得します。

getEJBLocalObject()

現在インスタンスに関連付けられている EJB local objectの参照を取得します。

getEJBHome()

Enterprise BeanのHomeインタフェースを取得します。

getEJBLocalHome()

Enterprise BeanのLocalHomeインタフェースを取得します。

getCallerPrincipal()

呼出し側のjava.security.Principalを取得します。

isCallerInRole(java.lang.String)

呼出し側がセキュリティーロールに割り当てられているか判定します。

setRollbackOnly()

カレントトランザクションを“rollback”にマークします。

getRollbackOnly()

そのトランザクションが“rollback only”でマークされているか判定します。

getUserTransaction()

トランザクション区別インタフェースを取得します。


 上記以外のメソッドは本バージョンでは使用上制限があります。

◆ ejbPassivateとejbActivateについて

 ejbPassivateと ejbActivateは、本バージョンでは呼ばれません。ただし、省略できないのでメソッドの記述はしてください。

◆ ejbRemoveについて

 EJBアプリケーションのインスタンスが終了するため、ファイルやデータベースの close処理を行ってください。


 EJBサービスでは、createメソッドで作成したSTATEFUL Session Beanのインスタンスを再利用することにより、サーバへの接続時間を短縮しています。そのため、STATEFUL Session Beanのcreate実行時に、コンストラクタの実行とフィールドの初期化がされないことがあります。
 初期化処理はejbCreateメソッド内に記述してください。


下へ11.6.1 記述例
下へ11.6.2 Enterprise Beanクラスのメソッドが実行可能な操作

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005