目次 | 前 | 次
16. エンタプライズBean提供者の責任
16.1 クラス及びインタフェース
エンタプライズBean提供者は,次のクラス及びインタフェースに責任をもつ。
-
エンタプライズBeanクラス
-
エンタプライズBeanの遠隔インタフェース
-
エンタプライズBeanのホームインタフェース
このクラス及びインタフェースの必須条件は,6.9,9.7及び9.10で指定されている。
さらに,引数に使用されるJavaプログラミング言語型,返却値,エンタプライズBeanの遠隔インタフェース及びホームインタフェースの例外は,IDLMapping規定[5]に有効なJavaの型でなければならない。
16.2 環境特性
エンタプライズBeanがある環境特性に依存する場合,エンタプライズBean提供者はBeanに対応する環境特性を提供しなければならない。環境特性は,標準java.util.Propertiesオブジェクトとして定義される。
エンタプライズBean提供者は,実行時にエンタプライズBeanのインスタンスが必要とするkey:valueペアをすべて定義しなければならない。値は通常は配置時にコンテナ提供者ツールによって編集される。
16.3 配置記述子
エンタプライズBean提供者は,すべてのエンタプライズBeanに対応する配置記述子を提供しなければならない。配置記述子の書式は15.2で記述している。
16.4 プログラミング制約
これは,エンタプライズ開発者が守らなければならない制約の一部にすぎないことに注意。
エンタプライズBean開発者は,エンタプライズBeanのクラスのメソッドを実装する際,次の制約に従わなければならない。
-
エンタプライズBeanに新しいスレッドを始動させたり,実行中のスレッドを終了させようとしてはならない。
-
エンタプライズBeanに読取り/書込みのstaticフィールドを使用させてはならない。読取り専用のstaticフィールドに関しては使用してもよい。そのため,すべてのstaticフィールドはfinalとして宣言しなければならない。
-
エンタプライズBeanにスレッド並行プリミティブを使用してはならない。
-
エンタプライズBeanに使用中のトランザクション管理者への直接呼出しを使用させてはならない。トランザクション属性TX_BEAN_MANAGEDを有するエンタプライズBeansは唯一の例外であり,インタフェースjavax.jts.UserTransactionを使用してトランザクションの境界を定めることができる。
-
エンタプライズBeanにjava.security.Identityを変更させてはならない。java.security.Identityを変更しようとすれば,結果としてjava.security.SecurityExceptionが投げられる。
-
JDBCを使用するトランザクション使用可能なエンタプライズBeanにメソッドcommit()及びメソッドrollbackを使用させてはならない。トランザクションが使用できないエンタプライズBeanであればメソッドcommit()及びメソッドrollback()を使用してもよい。
16.5 部品パッケージ化の責任
エンタプライズBean提供者は,ejb-jarファイルの次のクラス及びファイルを設置する責任をもつ。
-
エンタプライズBeanが依存するあらゆるクラスを有するエンタプライズBeanクラス
-
エンタプライズBeanに対応する配置属性を含む配置記述子ファイル
-
インタフェースが依存するあらゆるクラスを有するエンタプライズBeanの遠隔インタフェース
-
インタフェースが依存するあらゆるクラスを有するエンタプライズBeanのホームインタフェース
-
エンタプライズBeanの環境特性
-
ejb-jarファイルのすべてのエンタプライズBeanの配置記述子を識別するManifestファイル
目次 | 前 | 次