Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド |
目次 索引 |
第3部 EJB編 | > 第12章 Session Beanの実装 |
Enterprise Beanクラスは、ユーザがインタフェースで定義した ejbCreateメソッドおよびビジネスメソッドを実装します。
Interstage Studioを使用して開発を行った場合、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とビジネスメソッド以外に、Enterprise Beanクラスには、コンテナが処理の各フェーズで呼び出す以下のメソッドがあります。
以下のメソッドにはユーザが任意の処理を指定できます。以下のメソッドはすべて省略できません。
以下に使用できるメソッドの一覧を示します。
メソッド名 |
内容 |
setSessionContext |
コンテナによって保守されているコンテキストへのアクセスを与えます。 |
ejbPassivate |
EJBアプリケーションのインスタンスが二次領域(注1)に退避されるときに呼び出されます(ただし本バージョンでは呼ばれません)。 |
ejbActivate |
EJBアプリケーションのインスタンスが二次領域から復元されるときに呼び出されます(ただし本バージョンでは呼ばれません)。 |
ejbRemove |
EJBアプリケーションのインスタンスが終了するときに呼び出されます。 |
注1) EJBアプリケーションのインスタンスを退避するための領域
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は、本バージョンでは呼ばれません。ただし、省略できないのでメソッドの記述はしてください。
EJBアプリケーションのインスタンスが終了するため、ファイルやデータベースの close処理を行ってください。
EJBサービスでは、createメソッドで作成したSTATEFUL Session Beanのインスタンスを再利用することにより、サーバへの接続時間を短縮しています。そのため、STATEFUL Session Beanのcreate実行時に、コンストラクタの実行とフィールドの初期化がされないことがあります。
初期化処理はejbCreateメソッド内に記述してください。
目次 索引 |