プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Server Enterprise JavaBeansの開発
12c (12.2.1.2.0)
E82896-01
目次へ移動
目次

前

A EJB メタデータ・アノテーション・リファレンス

この付録では、EJB 3.xメタデータ・アノテーションのリファレンス情報を提供します。

この付録の内容は次のとおりです。

EJB 3.xアノテーションの概要

WebLogic Server EJB 3.2プログラミング・モデルでは、Java EE 7メタデータ・アノテーション機能を使用して、アノテーション付きEJB 3.2 Beanファイルを作成し、標準Javaコンパイラでクラスをコンパイルします。生成されたクラスは、デプロイメント用のターゲット・モジュールにパッケージ化できます。実行時に、WebLogic Serverはアノテーションを解析して、必要な動作のアスペクトをBeanファイルに適用します。

以降の節では、EJB Beanファイルで指定できるメタデータ・アノテーションのリファレンス情報を提供します。一部のアノテーションはjavax.ejbパッケージに含まれています。つまり、EJBに固有のアノテーションです。それ以外のアノテーションは、より一般的で他のJava EE 7コンポーネントでも使用するアノテーションです。したがって、javax.annotationなどの一般的なパッケージに含まれています。

注意:

EJB実装で引き続きデプロイメント記述子を使用する場合は、『Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発』のEJBデプロイメント記述子に関する項を参照してください。

ステートレスBean、ステートフルBean、メッセージドリブンBeanのアノテーション

この節では、以下のアノテーションのリファレンス情報を提供します。

javax.ejb.AccessTimeout

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド、型

タイムアウトするまで同時アクセスがブロックされる時間を任意の時間単位で指定します。

このアノテーションは、コンテナ管理による同時実行性を使用する、ステートフル・セッションBeanまたはシングルトン・セッションBeanに適用できます。

デフォルトでは、クライアントはステートフル・セッション・オブジェクトに対して同時呼出しを実行できますが、このような同時リクエストはコンテナでシリアライズする必要があります。AccessTimeoutアノテーションは、ステートフル・セッションBeanインスタンスがすでに別のリクエストを処理している場合に、そのBeanへのリクエストがブロックされる時間を指定するために使用します。AccessTimeoutアノテーションの値に0を指定すると、ステートフル・セッションBeanへの同時クライアント・リクエストを禁止するようにコンテナに指示されます。

AccessTimeoutアノテーションは、ビジネス・メソッドまたはBeanクラスに指定できます。クラスに指定した場合は、そのクラスのすべてのビジネス・メソッドに適用されます。クラスおよびそのクラスのビジネス・メソッドの両方に指定した場合、そのメソッドではメソッド・レベルのアノテーションが優先されます。

シングルトン・セッションBeanの場合、アクセス・タイムアウトは同時実行性のロックを使用できるメソッドのみに適用されます。AccessTimeoutアノテーションは、シングルトン・セッションBeanクラスまたはそのクラスの該当するメソッドに指定できます。AccessTimeoutをクラスおよびクラスのビジネス・メソッドの両方で指定した場合、そのメソッドではメソッド・レベルのアノテーションが優先されます。

詳細は、「EJBタイマー・サービスのプログラミング(省略可能)」を参照してください

属性

次の表で属性について簡単に説明します。


表A-1 javax.ejb.AccessTimeoutアノテーションの属性

名前 説明 データ型 必須?

value

タイムアウトするまで同時アクセスがブロックされる時間を任意の時間単位で指定します。

  • 0よりも大きい場合は、unit要素で指定した単位によるタイムアウト値を示します。

  • 0の場合は、同時アクセスが許可されないことを意味します。

  • -1の場合は、クライアント・リクエストは、前のリクエストが処理されるまで無期限にブロックされることを示します。

-1よりも小さい値は無効です。

Long

いいえ

unit

指定した値に使用する単位を指定します。

この属性のデフォルト値はjava.util.concurrent.TimeUnit.MILLISECONDSです。

TimeUnit

いいえ


javax.ejb.ActivationConfigProperty

以降の節では、このアノテーションについて詳しく説明します。

注意:

Enterprise JavaBean仕様に基づき、javax.ejb.ActivationConfigPropertyはMDBでのみ使用されます。このアノテーションは、セッションBeanおよびエンティティBeanでは使用されません。

説明

ターゲット: すべて

操作環境でメッセージドリブンBeanを構成するために使用するプロパティを指定します。確認応答モード、メッセージ・セレクタ、想定される宛先やエンドポイントのタイプなどの情報を含めることができます。ActivationConfigPropertyはメッセージドリブンBeanでのみ使用され、セッションBeanおよびエンティティBeanでは使用されません。

このアノテーションは、@javax.ejb.MessageDrivenアノテーションのactivationConfig属性の値としてのみ使用します。このアノテーションの詳細は、Oracle WebLogic ServerメッセージドリブンBeanの開発のEJB 3.2準拠MDBの使用とMDB向けデプロイメント要素およびアノテーションを参照してください。

属性

次の表で属性について簡単に説明します。


表A-2 javax.ejb.ActivationConfigPropertyアノテーションの属性

名前 説明 データ型 必須?

propertyName

アクティブ化プロパティの名前を指定します。

String

はい

propertyValue

アクティブ化プロパティの値を指定します。

String

はい


javax.ejb.AfterBegin

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

after beginセッション同期コールバックを受信するステートフル・セッションBeanメソッドを指定します。

after beginコールバックは、ステートフル・セッションBeanインスタンスに対して、新しいトランザクションが開始されたこと、およびそのインスタンスに対する以降のビジネス・メソッドがそのトランザクションのコンテキスト内で呼び出されることを通知します。

このメソッドは適切なトランザクション・コンテキスト内で実行されます。Beanで使用できるAfterBeginメソッドは1つまでです。このメソッドのシグネチャは次のルールに従う必要があります。

  • finalstaticとして宣言することはできません。

  • 任意のアクセス・タイプを指定できます。

  • 戻り型はvoidでなければなりません。

  • 引数を取ることはできません。

このメソッドはトランザクション・コンテキストを使用せずに実行されます。

ステートフル・セッションBeanクラスでは、SessionSynchronizationインタフェースまたはセッション同期アノテーションのいずれかを使用できますが、両方使用することはできません。

javax.ejb.AfterCompletion

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

after completionセッション同期コールバックを受信するステートフル・セッションBeanメソッドを指定します。

after completionコールバックは、ステートフル・セッションBeanインスタンスに対して、トランザクションのコミット・プロトコルが完了したことを通知します。完了ステータスがtrueの場合は、トランザクションがコミットされたことを示します。ステータスがfalseの場合は、ロールバックが行われたことを示します。

Beanで使用できるAfterCompletionメソッドは1つまでです。このメソッドのシグネチャは次のルールに従う必要があります。

  • finalstaticとして宣言することはできません。

  • 任意のアクセス・タイプを指定できます。

  • 戻り型はvoidでなければなりません。

  • boolean型の引数を1つ取る必要があります。

このメソッドはトランザクション・コンテキストを使用せずに実行されます。

ステートフル・セッションBeanクラスでは、SessionSynchronizationインタフェースまたはセッション同期アノテーションのいずれかを使用できますが、両方使用することはできません。

javax.ejb.ApplicationException

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

その例外がアプリケーション例外で、クライアント・アプリケーションに直接(ラップせずに)報告することを指定します。

このアノテーションは、検査済みの例外と未検査の例外の両方に適用できます。

属性

次の表で属性について簡単に説明します。


表A-3 javax.ejb.ApplicationExceptionアノテーションの属性

名前 説明 データ型 必須?

rollback

BeanがEJBコンテナ内部で呼び出されている場合に、例外が送出されたらトランザクションをロールバックするかどうかを指定します。

この属性の有効な値は、trueおよびfalseです。デフォルト値はfalseで、その場合トランザクションはロールバックされません

boolean

いいえ


javax.ejb.Asynchronous

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド、型

セッションBeanメソッドを非同期メソッドとして示す場合や、セッションBeanクラスのすべてのビジネス・メソッドを非同期として指定する場合に使用します。これらのメソッドでは、そのメソッドがセッションBeanインスタンスで呼び出される前にエンタープライズBeanコンテナによってクライアントに制御が戻されます。通常、非同期メソッドは、メソッドの呼出し結果が即座に必要でない場合に、アプリケーションのスループット向上やレスポンス時間短縮の方法として、長時間実行される処理、プロセッサ負荷の高いタスク、バックグラウンド・タスクに対して使用します。

クライアントで非同期メソッドを呼び出した場合は、エンタープライズBeanコンテナによってクライアントにただちに制御が戻されます。そのため、クライアントではメソッドの呼出しが完了するまでの間、他のタスクを実行できます。メソッドが結果を返す場合、その結果は戻り型voidまたはjava.util.concurrent.Future<V>インタフェースの実装になります。Vは結果値の型です。Future<V>インタフェースには、クライアントで使用するメソッドが定義されており、これらのメソッドを使用して、計算の完了状態のチェック、呼出し完了までの待機、最終結果の取得、呼出しの取消しを実行できます。

非同期メソッド呼出しのセマンティクスは、インタフェースなしのローカル・ビジネス・クライアント・ビューおよびリモート・クライアント・ビューのみに適用されます。EJB 2.xローカル、EJB 2.xリモート、およびWebサービス・クライアント・ビューを介して公開されるメソッドは、非同期として指定しないでください。

javax.ejb.BeforeCompletion

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

before completionセッション同期コールバックを受信するステートフル・セッションBeanメソッドを指定します。

before completionコールバックは、ステートフル・セッションBeanインスタンスに対して、トランザクションがコミットされようとしていることを通知します。

このメソッドは適切なトランザクション・コンテキスト内で実行されます。

注意:

インスタンスは、セッション・コンテキストでsetRollbackOnly()メソッドを呼び出すか、例外をスローすることにより、コンテナでトランザクションをロールバックさせることができます。Beanで使用できるBeforeCompletionメソッドは1つまでです。

このメソッドのシグネチャは次のルールに従う必要があります。

  • finalstaticとして宣言することはできません。

  • 任意のアクセス・タイプを指定できます。

  • 戻り型はvoidでなければなりません。

  • 引数を取ることはできません。

このメソッドはトランザクション・コンテキストを使用せずに実行されます。

ステートフル・セッションBeanクラスでは、SessionSynchronizationインタフェースまたはセッション同期アノテーションのいずれかを使用できますが、両方使用することはできません。

javax.ejb.ConcurrencyManagement

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:

シングルトン・セッションBeanの同時実行性管理の種類を宣言します。

このアノテーションが指定されていない場合、そのシングルトンBeanではコンテナ管理の同時実行性を使用するものと見なされます。

このアノテーションはステートフル・セッションBeanに適用できますが、適用しても、そのようなBeanの同時実行性管理のセマンティクスには効果がありません。Bean管理による同時実行性(BEAN)に対する同時実行性管理の種類は、ステートフル・セッションBeanには適用されません。

属性

次の表で属性について簡単に説明します。


表A-4 javax.ejb.ConcurrencyManagementアノテーションの属性

名前 説明 データ型 必須?

value

Beanクラスで使用される同時実行性管理の種類を指定します。

この属性の有効な値は以下のとおりです。

  • ConcurrencyManagementType.CONTAINER

  • ConcurrencyManagementType.BEAN

この属性のデフォルト値はjavax.ejb.ConcurrencyManagementType.CONTAINERです。

String

省略可能


javax.ejb.DependsOn

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:

初期化時のシングルトン・コンポーネント間の依存関係を指定するために使用します。

シングルトンのPostConstructメソッドが呼び出される前に、そのシングルトンとDependsOn関係にあるすべてのシングルトンBeanが初期化されることをコンテナが保証します。

アプリケーションの停止時に、このシングルトンとDependsOn関係にあるすべてのシングルトンBeanがシングルトンのPreDestroyメソッド内でまだ使用できることをコンテナが保証します。

属性

次の表で属性について簡単に説明します。


表A-5 javax.ejb.DependsOnアノテーションの属性

名前 説明 データ型 必須?

value

このシングルトンの前に初期化が必要なシングルトン・コンポーネントのEJB名を指定します。名前を指定する順序は重要ではありません。

String

省略可能


javax.ejb.EJB

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス、メソッド、フィールド

EJBビジネス・インタフェースまはたホーム・インタフェースへの依存性(参照)を指定します。

他のEJBへの依存関係を指定するには、Beanのインスタンス変数に@EJBアノテーションを付けます。WebLogic Serverでは、アノテーションを付けた変数が、依存先のEJBへの参照に基づいて自動的に初期化されます。これを依存関係インジェクションと呼びます。この初期化は、BeanのEJBContextが設定された後、Beanのビジネス・メソッドが呼び出される前に発生します。

このアノテーションをBeanクラス内のセッター・メソッドに付けることもできます。その場合、WebLogic Serverはセッター・メソッド自体を使用して依存関係インジェクションを実行します。この方法でインスタンス変数に依存性を注入することもできます。

このアノテーションをクラスに適用すると、Beanが実行時にルックアップするEJBが宣言されます。

変数またはセッター・メソッドへの注入を使用する場合、WebLogic Serverでは、アノテーションを付けたインスタンス変数またはセッター・メソッドのパラメータの名前またはデータ型に基づいて参照先のEJBの名前が判別されます。少しでも不明確な場合は、@EJBアノテーションのbeanName属性またはmappedName属性を使用して、依存先のEJBの名前を明示的に指定する必要があります。

属性

次の表で属性について簡単に説明します。


表A-6 javax.ejb.EJBアノテーションの属性

名前 説明 データ型 必須?

name

環境内で参照先EJBのルックアップに使用する名前を指定します。

この名前は、クラスおよびそのスーパークラスからなるデプロイメント・ユニット内でユニークでなければなりません。

String

いいえ

beanInterface

参照先EJBのインタフェース・タイプ(ビジネス・インタフェースまたはホーム・インタフェース)を指定します。

この属性のデフォルト値はObject.classです。

Class

いいえ

beanName

参照先EJBの名前を指定します。

この属性は、参照先EJBの@Statelessまたは@Statefulアノテーションのname要素(デフォルトでは、参照先Beanクラスの未修飾名)に対応します。

EJB JARファイル内の複数のセッションBeanが同じインタフェースを実装している場合は、各Beanの名前をユニークにする必要があるため、この属性が非常に有用になります。

String

いいえ

mappedName

参照先EJBのグローバルJNDI名を指定します。

例:

mappedName="bank.Account"

この場合は、WebLogic Server JNDIツリー内にデプロイされているbank.AccountというグローバルJNDI名の参照先EJBを指定しています。

注意: マッピングされた名前を使用するEJBは、移行できなくなる可能性があります。

String

いいえ

description

EJB参照の説明。

String

いいえ


javax.ejb.EJBs

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

@javax.ejb.EJBアノテーションの配列を指定します。

属性

次の表で属性について簡単に説明します。


表A-7 javax.ejb.EJBsアノテーションの属性

名前 説明 データ型 必須?

value

@javax.ejb.EJBアノテーションの配列を指定します。

EJB[]

いいえ


javax.ejb.Init

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

Beanクラス内のメソッドと、適合するEJB 2.1 EJBHomeまたはEJBLocalHomeクライアント・ビューのcreateMETHODメソッドとの対応関係を指定します。

このアノテーションは、ステートフル・セッションBean (クラス・レベルの@javax.ejb.Statefulアノテーションを付けたBean)でのみ使用します。

@javax.ejb.Initアノテーションを付けたメソッドの戻り値の型はvoidでなければなりません。また、パラメータの型は、参照するcreateMETHODメソッドのパラメータの型とまったく同じである必要があります。

@Initアノテーションが必要になるのは、Remote-HomeまたはLocalHomeインタフェースを提供するステートフル・セッションBeanのみです。少しでも不明確な場合は、value属性を使用して、HomeまたはLocalHomeインタフェースの適合するcreateメソッドの名前を指定する必要があります。

属性

次の表で属性について簡単に説明します。


表A-8 javax.ejb.Initアノテーションの属性

名前 説明 データ型 必須?

value

対応するcreateMETHODメソッドの名前を指定します。

この属性を指定する必要があるのは、@Initアノテーションを使用して、複数のcreate<METHOD>メソッドを含むステートフル・セッションBeanの適合するHomeインタフェースを関連付ける場合のみです。

String

いいえ


javax.ejb.Local

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

セッションBeanのローカル・インタフェースを指定します。ローカル・インタフェースは、ビジネス・ロジックをローカル・クライアント(EJBと同じアプリケーションで動作しているクライアント)にエクスポーズします。ローカル・クライアントから呼び出せるビジネス・メソッドを定義します。

Beanクラスに複数のインタフェース(ただし以下のインタフェースを除く)が実装されている場合は、このアノテーションを指定する必要があります。

  • java.io.Serializable

  • java.io.Externalizable

  • javax.ejb.*

このアノテーションは、ステートレスまたはステートフル・セッションBeanにのみ適用されます。

属性

次の表で属性について簡単に説明します。


表A-9 javax.ejb.Localの属性

名前 説明 データ型 必須?

value

ローカル・インタフェースのリストをクラスの配列として指定します。

この属性を指定する必要があるのは、Beanクラスに複数のインタフェース(ただし以下のインタフェースを除く)が実装されている場合のみです。

  • java.io.Serializable

  • java.io.Externalizable

  • javax.ejb.*

Class[]

いいえ


javax.ejb.LocalBean

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:

セッションBeanでインタフェースなしのビューを公開するように指定します。

javax.ejb.LocalHome

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

Beanクラスのローカル・ホーム・インタフェースを指定します。

ローカル・ホーム・インタフェースは、ローカル・クライアント(EJBと同じアプリケーションで動作するクライアント)から使用して、Beanのインスタンスを作成、削除、および(エンティティBeanの場合は)検索することができるメソッドを提供します。ローカル・ホーム・インタフェースには、特定のBeanインスタンスに固有ではないビジネス・ロジックであるホーム・メソッドもあります。

この属性は、ステートレスおよびステートフル・セッションBeanにのみ適用されます。

通常、この属性は、EJB 3.x Beanの適合するEJB 2.1コンポーネント・ビューを提供する予定がある場合にのみ指定します。このアノテーションは、EJB 2.1 APIに記述されているBeanクラスにも使用できます。

属性

次の表で属性について簡単に説明します。


表A-10 javax.ejb.LocalHomeアノテーションの属性

名前 説明 データ型 必須?

value

ローカル・ホーム・クラスを指定します。

Class

はい


javax.ejb.Lock

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: 型、メソッド

コンテナ管理による同時実行性を使用するシングルトン・セッションBeanに対して同時実行性のロックを宣言します。

このアノテーションは、BeanクラスまたはそのBeanクラスのビジネス・メソッド、あるいはこの両方に指定できます。このアノテーションをビジネス・メソッドに指定すると、クラス・レベルで指定した値(ある場合)は、オーバーライドされます。

このアノテーションが使用されていない場合、値はLock(WRITE)であると見なされます。

属性

次の表で属性について簡単に説明します。


表A-11 ejb.LockTypeアノテーションの属性

名前 説明 データ型 必須?

value

コンテナ管理による同時実行性を使用するシングルトン・セッションBeanで使用される同時実行性のロックを指定します。

この属性の有効な値は以下のとおりです。

  • LockType.READ

  • LockType.WRITE

デフォルト値はjavax.ejb.LockType.WRITEです。

String

省略可能


javax.ejb.MessageDriven

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

Enterprise JavaBeanがメッセージドリブンBeanであることを指定します。

属性

次の表で属性について簡単に説明します。


表A-12 javax.ejb.MessageDrivenアノテーションの属性

名前 説明 データ型 必須?

name

このメッセージドリブンBeanの名前を指定します。

この属性を指定しない場合は、Beanクラスの未修飾名がデフォルト値になります。

String

いいえ

messageListenerInterface

Beanクラスのメッセージ・リスナー・インタフェースを指定します。

Beanクラスにメッセージ・リスナー・インタフェースが明示的に実装されていない場合や、Beanクラスに複数のインタフェース(ただし、java.io.Serializablejava.io.Externalizable、およびjavax.ejbパッケージ内のすべてのインタフェースを除く)が実装されている場合は、この属性を指定する必要があります。

この属性のデフォルト値はObject.classです。

Class

いいえ

activationConfig

操作環境でのメッセージドリブンBeanの構成を指定します。確認応答モード、メッセージ・セレクタ、想定される宛先やエンドポイントのタイプなどの情報を含めることができます。

アクティブ化構成情報(プロパティ名や値)は、@javax.ejb.ActivationConfigPropertyアノテーションの配列を使用して指定します。

ActivationConfigProperty[]

いいえ

mappedName

メッセージドリブンBeanをマッピングする製品固有の名前を指定します。

この属性を使用して、このメッセージドリブンBeanのメッセージ宛先のJNDI名を指定することもできます。例:

mappedName="my.Queue"

このメッセージドリブンBeanは、WebLogic Server JNDIツリー内にデプロイされているmy.QueueというJNDI名のJMSキューに関連付けられます。

注意: この属性を指定した場合は、そのメッセージドリブンBeanを移行できなくなる可能性があります。

String

いいえ

description

メッセージドリブンBeanの説明を指定します。

String

いいえ


javax.ejb.PostActivate

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

EJBコンテナがBeanインスタンスを再アクティブ化した直後に通知を受信するライフサイクル・コールバック・メソッドを指定します。

このアノテーションは、ステートフル・セッションBeanにのみ適用されます。ステートフル・セッションBeanインスタンスがパッシブ化されたときの会話状態はEJBコンテナによって自動的に保持されるため、ほとんどのステートフル・セッションBeanではこのアノテーションを指定する必要はありません。このアノテーション(およびこれと対をなす@PrePassivate)を使用する必要があるのは、ステートフル・セッションBeanで開いておきたいリソースがあり、そのリソースをBeanインスタンスのパッシブ化の前に閉じ、Beanインスタンスのアクティブ化中に開きなおす必要がある場合のみです。

このアノテーションは、Beanクラス内の1つのメソッドにのみ付けることができます。このアノテーションを複数のメソッドに付けた場合、そのEJBはデプロイされません。

@PostActivateアノテーションを付けるメソッドは、以下の要件を満たす必要があります。

  • メソッドの戻り値の型がvoidでなければなりません。

  • 検査済みの例外を送出してはなりません。

  • publicprotectedpackage private、またはprivateにすることは可能です。

  • staticにすることはできません。

  • finalにすることはできません。

このアノテーションには、属性はありません。

javax.ejb.PrePassivate

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

EJBコンテナがBeanインスタンスをパッシブ化する直前に通知を受信するライフサイクル・コールバック・メソッドを指定します。

このアノテーションは、ステートフル・セッションBeanにのみ適用されます。ステートフル・セッションBeanインスタンスがパッシブ化されたときの会話状態はEJBコンテナによって自動的に保持されるため、ほとんどのステートフル・セッションBeanではこのアノテーションを指定する必要はありません。このアノテーション(およびこれと対をなす@PostActivate)を使用する必要があるのは、ステートフル・セッションBeanで開いておきたいリソースがあり、そのリソースをBeanインスタンスのパッシブ化の前に閉じ、Beanインスタンスのアクティブ化中に開きなおす必要がある場合のみです。

このアノテーションは、Beanクラス内の1つのメソッドにのみ付けることができます。このアノテーションを複数のメソッドに付けた場合、そのEJBはデプロイされません。

@PrePassivateアノテーションを付けるメソッドは、以下の要件を満たす必要があります。

  • メソッドの戻り値の型がvoidでなければなりません。

  • 検査済みの例外を送出してはなりません。

  • publicprotectedpackage private、またはprivateにすることは可能です。

  • staticにすることはできません。

  • finalにすることはできません。

このアノテーションには、属性はありません。

javax.ejb.Remote

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

セッションBeanのリモート・インタフェースを指定します。リモート・インタフェースはビジネス・ロジックをリモート・クライアント(EJBとは別のアプリケーションで動作するクライアント)にエクスポーズします。リモート・クライアントから呼び出せるビジネス・メソッドを定義します。

このアノテーションは、ステートレスまたはステートフル・セッションBeanにのみ適用されます。

属性

次の表で属性について簡単に説明します。


表A-13 javax.ejb.Remoteアノテーションの属性

名前 説明 データ型 必須?

value

リモート・インタフェースのリストをクラスの配列として指定します。

この属性を指定する必要があるのは、Beanクラスに複数のインタフェース(ただし以下のインタフェースを除く)が実装されている場合のみです。

  • java.io.Serializable

  • java.io.Externalizable

  • javax.ejb.*

Class[]

いいえ


javax.ejb.RemoteHome

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

Beanクラスのリモート・ホーム・インタフェースを指定します。

リモート・ホーム・インタフェースは、リモート・クライアント(EJBとは別のアプリケーションで動作するクライアント)でBeanのインスタンスを作成、削除、および検索するためのメソッドを提供します。

この属性は、ステートレスおよびステートフル・セッションBeanにのみ適用されます。

通常、この属性は、EJB 3.x Beanの適合するEJB 2.1コンポーネント・ビューを提供する予定がある場合にのみ指定します。このアノテーションは、EJB 2.1 APIに記述されているBeanクラスにも使用できます。

属性

次の表で属性について簡単に説明します。


表A-14 javax.ejb.RemoteHomeアノテーションの属性

名前 説明 データ型 必須?

value

リモート・ホーム・クラスを指定します。

Class

はい


javax.ejb.Remove

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

@javax.ejb.Removeアノテーションは、ステートフル・セッションBeanのremoveメソッドを指定するために使用します。

EJBコンテナは、そのメソッドが完了したときに、@javax.annotation.PreDestroyアノテーションが付いているメソッドがあればそれを呼び出してからステートフル・セッションBeanを破棄します。

属性

次の表で属性について簡単に説明します。


表A-15 javax.ejb.Removeアノテーションの属性

名前 説明 データ型 必須?

retainIfException

このアノテーションを付けたメソッドがアプリケーション例外で異常終了した場合には、ステートフル・セッションBeanを削除しないことを指定します。

有効な値は、trueおよびfalseです。デフォルト値はfalseです。

boolean

いいえ


javax.ejb.Schedule

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

タイムアウト・スケジュールで自動作成されるタイマーをCRONと同様の時間表現に基づいてスケジュールします。アノテーションを付けたメソッドは、タイムアウト・コールバック・メソッドとして使用されます。

このアノテーションのすべての要素は、省略可能です。何も指定されていない場合は、毎日午前0時にコールバックが発生し、永続タイマーが作成されます。この時間は、アプリケーションが実行されているコンテナに関連付けられているデフォルト・タイムゾーンに基づきます。

スケジュールの指定は、次に示す7個の要素で構成されています。また、timezone要素は、スケジュール指定が評価されるコンテキストのデフォルト以外のタイムゾーンを指定する場合に使用します。persistent要素は、非永続タイマーを指定する場合に使用します。info要素は、タイマー・コールバック発生時に取得されると思われる追加情報を指定する場合に使用します。

カレンダベースのスケジュールの要素

カレンダベースのスケジュールを指定する要素は次のとおりです。

  • second - 1分のうちの秒(1つまたは複数)。

    許容される値: [0,59]

  • minute - 1時間のうちの分(1つまたは複数)。

    許容される値: [0,59]

  • hour - 1日のうちの時間(1つまたは複数)。

    許容される値: [0,23]

  • dayOfMonth - 1か月のうちの日(1つまたは複数)。

    許容される値:]

    • 1,31]

    • -7, -1

    • "Last"

    • {"1st", "2nd", "3rd", "4th", "5th", "Last"} {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}

    "Last"は月の最終日を意味します。

    -x (xの範囲は[-7, -1])は、月の最終日から数えてx日前を意味します。

    週の曜日に適用される"1st"、"2nd"などは、月内でその曜日がそれぞれ出現する日を識別します。

  • month - 1年のうちの月(1つまたは複数)。

    許容される値:]

    • [1,12]

    • {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", Dec"}

  • dayOfWeek - 1週間のうちの曜日(1つまたは複数)。

    許容される値:]

    • [0,7]

    • {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}

    "0"および"7"はいずれも日曜日を表します。

  • year - 特定の暦年。

    許容される値: 4桁の暦年

要素値でサポートされる形式

各要素では次のいずれかの形式で記述された値がサポートされます。

  • 単一の値 - その属性で使用可能な値の中から1つのみに限定します。

    Example: second = "10"
    Example: month = "Sep"
    
  • ワイルド・カード - "*"はその属性で有効な値のすべてを表します。

    Example: second = "*"
    Example: dayOfWeek = "*"
    
  • リスト - 属性を2つ以上の有効な値または範囲に限定します。文字列内の区切り文字にはコンマを使用します。リスト内の各アイテムは単一の値または範囲でなければなりません。リストのアイテムには、リスト、ワイルド・カード、増分は指定できません。重複値は無視されます。

    Example: second = "10,20,30"
    Example: dayOfWeek = "Mon,Wed,Fri"
    Example: minute = "0-10,30,40"
    
  • 範囲 - 複数の値を含む範囲に属性を限定します。範囲の両端はダッシュで区切ります。範囲の両端は単一の属性値でなければなりません。範囲のメンバーには、リスト、ワイルド・カード、範囲、増分は指定できません。範囲"x-y"xyよりも大きい場合、その範囲は"x-max, min-y"と同等です。ここで示すmaxは対応する属性の最大値、minは最小値です。範囲"x-x"、つまり範囲の両方の値が同じ場合は、単一の値xとして評価されます。曜日の範囲"0-7"は、"*"と同等です。

    Example: second = "1-10"
    Example: dayOfWeek = "Fri-Mon"
    Example: dayOfMonth = "27-3" (Equivalent to "27-Last , 1-3"
    
  • 増分 - 前方のスラッシュによって属性を開始点と間隔に基づいて限定します。1分、1時間、1日のうちのそれぞれN秒、分、時間おきの時間を指定するために使用します。x/yという表現では、属性は時間xで始まる有効な値の中でy番目の値おきに限定されます。値xは含まれます。xの位置にワイルド・カード文字(*)を使用できます。これは0と同等です。増分の使用は、secondminuteおよびhour要素内のみでサポートされます。secondおよびminute要素では、xおよびyはそれぞれ[0,59]の範囲で指定する必要があります。hour要素では、xおよびyはそれぞれ[0,23]の範囲で指定する必要があります。

    Example: minute = "?/5" (Every five minutes within the hour)
    

    これは「minute = "0,5,10,15,20,25,30,35,40,45,50,55"」と同等です。

    Example: second = "30/10" (Every 10 seconds within the minute, starting at second 30) 
    

    これは「second = "30,40,50"」と同等です。

    増分値の一連の照合処理は、その属性の最大値を超えると停止します。限度を超えて継続されることはありません。

    Example : ( minute = "?/14", hour="1,2") 
    

    これは「(minute = "0,14,28,42,56", hour = "1,2")」(午前1時から2時の間で14分おき)と同等です。

スケジュール指定の要素のその他のルール

スケジュール指定の要素に適用されるその他のルールは次のとおりです。

  • dayOfMonth要素にワイルド・カード以外の値を指定し、dayOfWeek要素にもワイルド・カード以外の値を指定した場合、dayOfMonth値またはdayOfWeek値のいずれかに一致する日はすべて適用対象と見なされます。

  • 空白は無視されます(文字列定数と数値は除く)。

  • すべての文字列定数(例: "Sun"、"Jan"、"1st"など)において、大文字と小文字は区別されません。

スケジュールベースのタイマー時間は、アプリケーションが実行されているコンテナに関連付けられているデフォルト・タイムゾーンのコンテキストで評価されます。スケジュール・ベースのタイマーでは、必要に応じてこのデフォルトをオーバーライドして、特定のタイムゾーンに関連付けることができます。スケジュールベースのタイマーを特定のタイムゾーンに関連付けると、そのタイマーの時間はすべて、コンテナが実行されているデフォルト・タイムゾーンに関係なく、そのタイムゾーンのコンテキストで評価されます。

Scheduleアノテーションを適用するタイムアウト・コールバック・メソッドは、次のシグネチャのいずれかにする必要があります(<METHOD>にはメソッド名を指定します)。

void <METHOD>()
 void <METHOD>(Timer timer)

タイムアウト・コールバック・メソッドには、public、private、protectedまたはpackageレベルのアクセスを指定できます。タイムアウト・コールバック・メソッドをfinalやstaticとして宣言することはできません。タイムアウト・コールバック・メソッドでアプリケーション例外をスローすることはできません。

属性

次の表で属性について簡単に説明します。


表A-16 javax.ejb.Scheduleアノテーションの属性

名前 説明 データ型 必須?

dayofMonth

1か月のうちの日(1つまたは複数)を指定します。

デフォルト値は*です。

String

いいえ

dayofWeek

1週間のうちの曜日(1つまたは複数)を指定します。

デフォルト値は*です。

String

いいえ

hour

1日のうちの時間(1つまたは複数)を指定します。

デフォルト値は0です。

String

いいえ

info

タイマーに関連付けられている情報文字列を指定します。

デフォルト値は0です。

String

いいえ

minute

1時間のうちの分(1つまたは複数)を指定します。

デフォルト値は0です。

String

いいえ

month

1年のうちの月(1つまたは複数)を指定します。

デフォルト値は*です。

String

いいえ

persistent

作成されるタイマーが永続タイマーかどうかを指定します。

この属性の有効な値は、trueおよびfalseです。デフォルト値はtrueです。

Boolean

いいえ

second

1分のうちの秒(1つまたは複数)を指定します。

デフォルト値は0です。

String

いいえ

timezone

スケジュールが評価されるタイムゾーンを指定します。タイムゾーンはID文字列として指定されています。必要なタイムゾーンの一連のIDは、パブリック・ドメインのzoneinfoデータベースのZone Name(TZ)列に定義されています。

デフォルト値: タイムゾーンが指定されていない場合、スケジュールは、アプリケーションが実行されているコンテナに関連付けられているデフォルト・タイムゾーンのコンテキストで評価されます。

String

いいえ

year

暦年(1つまたは複数)を指定します。

デフォルト値は*です。

String

いいえ


javax.ejb.Schedules

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

複数のカレンダベースのタイマーをスケジュールする1つのタイマー・コールバック・メソッドに適用されます。Schedulesアノテーションを適用するメソッドは、次のシグネチャのいずれかにする必要があります(<METHOD>にはメソッド名を指定します)。

void <METHOD>()
void <METHOD>(Timer timer)

属性

次の表で属性について簡単に説明します。


表A-17 javax.ejb.Schedulesアノテーションの属性

名前 説明 データ型 必須?

value

カレンダベースのタイマー指定を1つ以上指定します。

Schedule[]

はい


javax.ejb.Singleton

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

Enterprise JavaBeanがシングルトン・セッションBeanであることを指定します。

属性

次の表で属性について簡単に説明します。


表A-18 javax.ejb.Singletonアノテーションの属性

名前 説明 データ型 必須?

name

このシングルトン・セッションBeanの名前を指定します。

この属性を指定しない場合は、Beanクラスの未修飾名がデフォルト値になります。

String

いいえ

mappedName

シングルトン・セッションBeanをマッピングする製品固有の名前を指定します。

この属性を使用して、このシングルトン・セッションBeanのJNDI名を指定することもできます。WebLogic Serverでは、BeanのグローバルJNDI名を作成する際にmappedName属性の値を使用します。具体的には、JNDI名は次のようになります。

mappedName#name_of_businessInterface

name_of_businessInterfaceは、このセッションBeanのビジネス・インタフェースの完全修飾名。

たとえば、ビジネス・インタフェースの完全修飾名がcom.CheckingAccountである場合にmappedName="bank"と指定すると、このビジネス・インタフェースのJNDI名はbank#com.CheckingAccountとなります。

注意: この属性を指定した場合は、そのシングルトン・セッションBeanを移行できなくなる可能性があります。

String

いいえ

description

シングルトン・セッションBeanの説明。

String

省略可能


javax.ejb.Startup

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

Enterprise JavaBeanがステートフル・セッションBeanであることを指定します。

javax.ejb.StatefulTimeout

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット:

ステートフル・セッションBeanのアイドル状態(クライアント呼出しを受信しない状態)が許容される時間数を指定します。この時間が経過すると、ステートフル・セッションBeanはコンテナによって削除されます。

属性

次の表で属性について簡単に説明します。


表A-19 javax.ejb.StatefulTimeoutアノテーションの属性

名前 説明 データ型 必須?

value

ステートフル・セッションBeanで許可するアイドル時間を指定します。

  • 0よりも大きい場合は、unit要素で指定した単位によるタイムアウト値を示します。

  • 0の場合は、同時アクセスが許可されないことを意味します。

  • -1の場合は、クライアント・リクエストは、前のリクエストが処理されるまで無期限にブロックされることを示します。

-1よりも小さい値は無効です。

Long

いいえ

unit

指定した値に使用する単位を指定します。

この属性のデフォルト値はjava.util.concurrent.TimeUnit.MINUTESです。

TimeUnit

いいえ


javax.ejb.Stateless

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

Enterprise JavaBeanがステートレス・セッションBeanであることを指定します。

属性

次の表で属性について簡単に説明します。


表A-20 javax.ejb.Statelessアノテーションの属性

名前 説明 データ型 必須?

name

このステートレス・セッションBeanの名前を指定します。

この属性を指定しない場合は、Beanクラスの未修飾名がデフォルト値になります。

String

いいえ

mappedName

ステートレス・セッションBeanをマッピングする製品固有の名前を指定します。

この属性を使用して、このステートレス・セッションBeanのJNDI名を指定することもできます。WebLogic Serverでは、BeanのグローバルJNDI名を作成する際にmappedName属性の値を使用します。具体的には、JNDI名は次のようになります。

mappedName#name_of_businessInterface

name_of_businessInterfaceは、このセッションBeanのビジネス・インタフェースの完全修飾名。

たとえば、ビジネス・インタフェースの完全修飾名がcom.CheckingAccountである場合にmappedName="bank"と指定すると、このビジネス・インタフェースのJNDI名はbank#com.CheckingAccountとなります。

注意: この属性を指定した場合は、そのステートレス・セッションBeanを移行できなくなる可能性があります。

String

いいえ

description

ステートレス・セッションBeanの説明。

String

省略可能


javax.ejb.Timeout

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

Beanクラスのタイムアウト・メソッドを指定します。

このアノテーションは、Beanクラス内でEJBタイマー・サービスを簡単にプログラミングするためのアノテーションです。EJBタイマー・サービスはEJBコンテナによって提供されるサービスです。このサービスを使用すると、タイマー・オブジェクトが期限切れになったときに発生するコールバックをスケジューリングするタイマーを作成できます。

EJB 3.xより前のバージョンでタイマー・サービスをプログラミングするには、Beanクラスにjavax.ejb.TimedObjectオブジェクトを実装する必要がありました。また、BeanクラスにejbTimeoutという名前のメソッドを含める必要もありました。EJBのバージョン3.xでは、これらの要件が緩和されました。javax.ejb.TimedObjectインタフェースを実装する必要はなくなり、@Timeoutアノテーションを付けている限り、タイムアウト・メソッドに任意の名前を付けることができるようになりました。ただし、必要であれば、3.xより前の方法でタイマー・サービスをプログラミングすることもできます。

詳細は、「EJBタイマー・サービスのプログラミング(省略可能)」を参照してください

このアノテーションには、属性はありません。

javax.ejb.TransactionAttribute

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス、メソッド

EJBコンテナがEJBビジネス・メソッドをトランザクション・コンテキスト内で呼び出すかどうかを指定します。

注意:

このアノテーションを指定した場合は、@TransactionManagementアノテーションを使用して、コンテナ管理によるトランザクションの境界設定を指定する必要があります。

このアノテーションは、Beanクラスに指定することも、クラスの特定のメソッド(ビジネス・インタフェースのメソッド)に指定することもできます。Beanクラスに指定した場合、アノテーションはそのクラスの該当するすべてのビジネス・インタフェース・メソッドに適用されます。特定のメソッドに指定した場合は、そのメソッドにのみ適用されます。このアノテーションをクラス・レベルとメソッド・レベルの両方で指定し、それらの値が食い違っている場合は、メソッド・レベルの値が優先されます。

Beanクラスで@TransactionAttributeアノテーションを指定しない場合は、コンテナ管理によるトランザクションの境界設定が使用されます。トランザクション属性のセマンティクスはREQUIREDと見なされます。

属性

次の表で属性について簡単に説明します。


表A-21 javax.ejb.TransactionAttributeアノテーションの属性

名前 説明 データ型 必須?

value

ビジネス・メソッドの呼出し時に、EJBコンテナがトランザクションの境界設定を管理する方法を指定します。

これらの値の詳細は、Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のコンテナ管理によるトランザクション要素の表のtrans-attribute要素の説明を参照してください。

この属性の有効な値は以下のとおりです。

  • TransactionAttributeType.MANDATORY

  • TransactionAttributeType.REQUIRED

  • TransactionAttributeType.REQUIRED_NEW

  • TransactionAttributeType.SUPPORTS

  • TransactionAttributeType.NOT_SUPPORTED

  • TransactionAttributeType.NEVER

デフォルト値はTransactionAttributeType.REQUIREDです。

String

省略可能


javax.ejb.TransactionManagement

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

セッションBeanまたはメッセージドリブンBeanのトランザクションの境界設定管理の種類を指定します。

トランザクションとは、ディスク上、メモリー内、またはデータベース内にあるアプリケーションの状態を変更する作業の1単位であり、一度開始されると最後まで完了するか、あるいは一切何も行われません。トランザクションは、EJBコンテナ、Beanコード、またはクライアント・コードによって境界設定(開始およびコミットまたはロールバックでの終了)することができます。このアノテーションは、トランザクションの境界設定を、EJBコンテナで管理するか、ユーザーが記述したBeanコードで管理するかを指定します。

Beanクラスにこのアノテーションを指定しない場合、そのBeanではトランザクションの境界設定をコンテナで管理するものと見なされます。

トランザクションの詳細は、Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のトランザクションの設計と管理のオプションを参照してください。

属性

次の表で属性について簡単に説明します。


表A-22 javax.ejb.TransactionManagementアノテーションの属性

名前 説明 データ型 必須?

value

Beanクラスで使用するトランザクションの境界設定管理の種類を指定します。

この属性の有効な値は以下のとおりです。

  • TransactionManagementType.CONTAINER

  • TransactionManagementType.BEAN

デフォルト値はTransactionManagementType.CONTAINERです。

String

省略可能


インターセプタの構成に使用するアノテーション

この項では、次の各項で説明するアノテーションのリファレンス情報を提供します。

javax.interceptor.AroundInvoke

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

Beanクラスまたはインターセプタ・クラスのビジネス・メソッド・インターセプタを指定します。

@AroundInvokeアノテーションは、Beanクラスまたはインターセプタ・クラス内の1つのメソッドにのみ付けることができます。なお、Beanクラスのビジネス・メソッドに付けることはできません。

このアノテーションには、属性はありません。

javax.interceptor.ExcludeClassInterceptors

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

このアノテーションを付けたメソッドに対して、クラス・レベルのインターセプタを呼び出さないことを指定します。デフォルト・インターセプタの呼出しは、@ExcludeDefaultInterceptorsアノテーションでのみ除外できます。

このアノテーションには、属性はありません。

javax.interceptor.ExcludeDefaultInterceptors

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス、メソッド

定義されているどのデフォルト・インターセプタも呼び出さないことを指定します(デフォルト・インターセプタは、EJBデプロイメント記述子でのみ指定できます。アノテーションでは指定できません)。

クラス・レベルで定義した場合、デフォルト・インターセプタはBeanのどのビジネス・メソッドに対しても呼び出されません。メソッド・レベルで定義した場合は、その特定のビジネス・メソッドに対しては呼び出されませんが、それ以外の@ExludeDefaultInterceptorsアノテーションが付いていないすべてのビジネス・メソッドに対しては呼び出されます。

このアノテーションには、属性はありません。

javax.interceptor.Interceptors

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス、メソッド

Beanクラスまたはメソッドに関連付けるインターセプタ・クラスを指定します。インターセプタ・クラスは、Beanクラスとはまったく別のクラスです。インターセプタ・クラスのメソッドは、Beanのビジネス・メソッド呼び出しまたはライフサイクル・イベントに呼応する形で呼び出されます。

インターセプタ・クラスには、ビジネス・インターセプタ・メソッド(@javax.interceptor.AroundInvokeアノテーションを付けたメソッド)と、ライフサイクル・コールバック・メソッド(@javax.annotation.PostConstruct@javax.annotation.PreDestroy@javax.ejb.PostActivate、または@javax.ejb.PrePassivateアノテーションを付けたメソッド)の両方を含めることができます。

Beanクラスに対して定義できるインターセプタ・クラスの数に制限はありません。複数のインターセプタ・クラスを定義した場合は、そのアノテーション内に指定した順序で呼び出されます。

アノテーションをクラス・レベルで指定した場合、インターセプタはEJBのすべてのビジネス・メソッドに適用されます。メソッド・レベルで指定した場合は、そのメソッドにのみ適用されます。同じインターセプタ・クラスを、Beanクラスの複数のメソッドに指定することもできます。メソッド・レベルのインターセプタは、デフォルトでは、適用されるすべてのインターセプタ(デフォルト・インターセプタ、クラス・レベルのインターセプタなど)の後に呼び出されます。

属性

次の表で属性について簡単に説明します。


表A-23 javax.interceptor.Interceptorsアノテーションの属性

名前 説明 データ型 必須?

value

インターセプタ・クラスの配列を指定します。配列に複数のインターセプタ・クラスを含める場合は、配列内で指定した順序によって呼出しの順序が決まります。

Class[]

はい


エンティティBeanとの対話に使用するアノテーション

この項では、次の各項で説明するアノテーションのリファレンス情報を提供します。

javax.persistence.PersistenceContext

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス、メソッド、フィールド

コンテナ管理のEntityManager永続性コンテキストへの依存性を指定します。

このアノテーションは、3.xエンティティBeanと対話するために使用します。通常はEntityManagerインスタンスへの依存関係インジェクションを実行します。

EntityManagerインタフェースには、永続性コンテキストとの対話に使用するメソッドが定義されています。永続性コンテキストとは、エンティティ・インスタンスのセットです。エンティティとは、軽量の永続ドメイン・オブジェクトです。EntityManager APIを使用すると、永続エンティティ・インスタンスの作成や削除、主キーに基づくエンティティの検索、およびエンティティに対する問合せを実行できます。

属性

次の表で属性について簡単に説明します。


表A-24 javax.persistence.PersistenceContextAnnotationの属性

名前 説明 データ型 必須?

name

EntityManagerとその永続性ユニットの名前(セッションBeanまたはメッセージドリブンBeanのコンテキスト内で使用する名前)を指定します。

この属性は、JNDIルックアップを使用してEntityManagerを取得する場合にのみ指定します。依存関係インジェクションを使用する場合は指定する必要はありません。

String

いいえ

unitName

永続性ユニットの名前を指定します。

この属性の値としてpersistence.xmlファイル内の永続性ユニットと同じ名前を指定すると、EJBコンテナによって永続性ユニットが自動的にデプロイされ、そのJNDI名としてその永続性ユニット名が設定されます。同様に、この属性を指定しない場合でも、永続性コンテキスト情報を注入する変数の名前をpersistence.xmlファイル内の永続性ユニットの名前と同じにすれば、EJBコンテナによって永続性ユニットが自動的にデプロイされ、そのJNDI名が永続性ユニット名と同じになるように設定されます。

注意 : persistence.xmlファイルは、EJB JARファイルのMETA-INFディレクトリに格納されているXMLファイルで、エンティティBeanで使用するデータベースと、EntityManagerのデフォルトの動作を指定します。

参照するスコープ内に複数の永続性ユニットがある場合は、この属性を指定する必要があります。

String

いいえ

type

永続性コンテキストの存続期間を、1つのトランザクションのスコープに限定するか、1つのトランザクションのスコープを超えて延長させるかを指定します。

この属性の有効な値は以下のとおりです。

  • PersistenceContextType.TRANSACTION

  • PersistenceContextType.EXTENDED

デフォルト値はPersistenceContextType.TRANSACTIONです。

PersistenceContextType

いいえ


javax.persistence.PersistenceContexts

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

@javax.persistence.PersistenceContextアノテーションの配列を指定します。

属性

次の表で属性について簡単に説明します。


表A-25 javax.persistence.PersistenceContextsアノテーションの属性

名前 説明 データ型 必須?

value

@javax.persistence.PersistenceContextアノテーションの配列を指定します。

PersistenceContext[]

必須


javax.persistence.PersistenceUnit

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス、メソッド、フィールド

EntityManagerFactoryオブジェクトへの依存性を指定します。

このアノテーションは、3.xエンティティBeanと対話するために使用します。通常はEntityManagerFactoryインスタンスへの依存関係インジェクションを実行します。このEntityManagerFactoryを使用して、1つまたは複数のEntityManagerインスタンスを作成できます。このアノテーションは@PersistenceContextアノテーションに似ていますが、EntityManagerの作成や破棄をEJBコンテナに任せずユーザー自身が行うため、その存続期間をより細かく制御できる点が異なります。

EntityManagerインタフェースには、永続性コンテキストとの対話に使用するメソッドが定義されています。永続性コンテキストとは、エンティティ・インスタンスのセットです。エンティティとは、軽量の永続ドメイン・オブジェクトです。EntityManager APIを使用すると、永続エンティティ・インスタンスの作成や削除、主キーに基づくエンティティの検索、およびエンティティに対する問合せを実行できます。

属性

次の表で属性について簡単に説明します。


表A-26 javax.persistence.PersistenceUnitアノテーションの属性

名前 説明 データ型 必須?

name

EntityManagerFactoryの名前(セッションBeanまたはメッセージドリブンBeanのコンテキスト内で使用する名前)を指定します。

この属性は、依存関係インジェクションを使用する場合は指定する必要はありません。JNDIも使用して情報をルックアップする場合にのみ指定します。

String

いいえ

unitName

persistence.xmlファイルに定義されている永続性ユニットの名前を参照します。このファイルは、EJB JARファイルのMETA-INFディレクトリに格納されているXMLファイルで、エンティティBeanで使用するデータベースと、EntityManagerのデフォルトの動作を指定します。

この属性を設定した場合は、参照先の永続性ユニットがEJBコンテナによって自動的にデプロイされ、そのJNDI名としてその永続性ユニット名が設定されます。同様に、この属性を指定しない場合でも、永続性コンテキスト情報を注入する変数の名前をpersistence.xmlファイル内の永続性ユニットの名前と同じにすれば、EJBコンテナによって永続性ユニットが自動的にデプロイされ、そのJNDI名が永続性ユニット名と同じになるように設定されます。

参照するスコープ内に複数の永続性ユニットがある場合にのみ、この属性を指定する必要があります。

String

いいえ


javax.persistence.PersistenceUnits

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

@javax.persistence.PersistenceUnitアノテーションの配列を指定します。

属性

次の表で属性について簡単に説明します。


表A-27 javax.persistence.PersistenceUnitsアノテーションの属性

名前 説明 データ型 必須?

value

@javax.persistence.PersistenceUnitアノテーションの配列を指定します。

PersistenceUnit[]

はい


EJB 3.xで使用する標準JDKアノテーション

この項では、次の各項で説明するアノテーションのリファレンス情報を提供します。

javax.annotation.PostConstruct

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

依存関係インジェクションが完了した後、1番目のビジネス・メソッドを呼び出す前に、初期化を実行するためにEJBコンテナから呼び出す必要のあるライフサイクル・コールバック・メソッドを指定します。

依存関係インジェクションを含むすべてのBeanクラスには、@PostConstructメソッドを指定できます。

このアノテーションは、Beanクラス内の1つのメソッドにのみ付けることができます。このアノテーションを複数のメソッドに付けた場合、そのEJBはデプロイされません。

@PostConstructアノテーションを付けるメソッドは、以下の要件を満たす必要があります。

  • メソッドの戻り値の型がvoidでなければなりません。

  • 検査済みの例外を送出してはなりません。

  • publicprotectedpackage private、またはprivateにすることは可能です。

  • staticにすることはできません。

  • finalにすることはできません。

このアノテーションには、属性はありません。

javax.annotation.PreDestroy

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

EJBコンテナがBeanクラス・インスタンスを破棄する直前に通知を受信するライフサイクル・コールバック・メソッドを指定します。通常、このアノテーションは、Beanクラスが保持しているリソースを解放するメソッドに適用します。

このアノテーションは、Beanクラス内の1つのメソッドにのみ付けることができます。このアノテーションを複数のメソッドに付けた場合、そのEJBはデプロイされません。

@PreDestroyアノテーションを付けるメソッドは、以下の要件を満たす必要があります。

  • メソッドの戻り値の型がvoidでなければなりません。

  • 検査済みの例外を送出してはなりません。

  • publicprotectedpackage private、またはprivateにすることは可能です。

  • staticにすることはできません。

  • finalにすることはできません。

このアノテーションには、属性はありません。

javax.annotation.Resource

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス、メソッド、フィールド

外部リソース(JDBCデータ・ソース、JMS宛先、接続ファクトリなど)への依存性を指定します。

このアノテーションをフィールドまたはメソッドに指定すると、Beanの初期化時に、要求されたリソースのインスタンスがBeanに注入されます。このアノテーションをクラスに適用すると、Beanが実行時にルックアップするリソースが宣言されます。

属性

次の表で属性について簡単に説明します。


表A-28 javax.annotation.Resourceアノテーションの属性

名前 説明 データ型 必須?

name

リソース参照の名前を指定します。

@Resourceアノテーションをフィールドに適用した場合は、クラス名で修飾されたフィールド名がname属性のデフォルト値になります。メソッドに適用した場合は、そのメソッドに対応するJavaBeanプロパティ名をクラス名で修飾した名前がデフォルト値になります。このアノテーションをクラスに適用した場合はデフォルト値がないため、この属性を指定する必要があります。

String

いいえ

type

リソースのJavaデータ型を指定します。

@Resourceアノテーションをフィールドに適用した場合は、そのフィールドの型がtype属性のデフォルト値になります。メソッドに適用した場合は、JavaBeanプロパティの型がデフォルトになります。クラスに適用した場合はデフォルト値がないため、この属性を指定する必要があります。

Class

いいえ

authenticationType

このリソースに使用する認証タイプを指定します。

この属性は、サポートされるタイプの接続ファクトリを表すリソースにのみ指定します。

この属性の有効な値は以下のとおりです。

  • AuthenticationType.CONTAINER

  • AuthenticationType.APPLICATION

デフォルト値はAuthenticationType.CONTAINERです。

AuthenticationType

いいえ

shareable

リソースを、このEJBと他のEJBとの間で共有できるかどうかを指定します。

この属性は、サポートされるタイプの接続ファクトリまたはORBオブジェクト・インスタンスを表すリソースにのみ指定します。

この属性の有効な値は、trueおよびfalseです。デフォルト値はtrueです。

boolean

いいえ

mappedName

依存リソースのグローバルJNDI名を指定します。

例:

mappedName="my.Datasource"

この場合は、WebLogic Server JNDIツリー内にデプロイされているmy.DatasourceというグローバルJNDI名の依存リソースを指定しています。

String

いいえ

description

リソースの説明を指定します。

String

いいえ


javax.annotation.Resources

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

@Resourceアノテーションの配列を指定します。

属性

次の表で属性について簡単に説明します。


表A-29 javax.annotation.Resourcesアノテーションの属性

名前 説明 データ型 必須?

value

@Resourceアノテーションの配列を指定します。

Resource[]

はい


EJB 3.xで使用するセキュリティ関連の標準JDKアノテーション

この項では、次の各項で説明するアノテーションのリファレンス情報を提供します。

javax.annotation.security.DeclareRoles

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

EJBで使用するセキュリティ・ロールを定義します。

通常、このアノテーションは、アノテーションを付けたクラスのメソッド内から(たとえばisUserInRoleメソッドを使用して)テストできるロールを定義するために使用します。また、クラスまたはクラスのメソッドで@RolesAllowedアノテーションを使用している場合はロールが暗黙的に宣言されますが、このアノテーションを使用することでそれらのロールを明示的に宣言できます。

WebLogic Serverのセキュリティ・ロールは、WebLogic Server管理コンソールを使用して作成できます。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプセキュリティ・ロールの管理を参照してください。

属性

次の表で属性について簡単に説明します。


表A-30 javax.annotation.security.DeclareRolesアノテーションの属性

名前 説明 データ型 必須?

value

Beanクラス内で使用するセキュリティ・ロールの配列を指定します。

String[]

必須


javax.annotation.security.DenyAll

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

このアノテーションを付けたメソッドへのアクセスを、どのセキュリティ・ロールにも許可しないことを指定します。つまり、このメソッドは、EJBコンテナでの実行から除外されます。

このアノテーションには、属性はありません。

javax.annotation.security.PermitAll

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

このアノテーションを付けたメソッドへのアクセスを、WebLogic Serverに定義されているすべてのセキュリティ・ロールに許可することを指定します。

このアノテーションには、属性はありません。

javax.annotation.security.RolesAllowed

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス、メソッド

EJB内のメソッドにアクセスできるセキュリティ・ロールのリストを指定します。

クラス・レベルで指定した場合は、Beanクラス内のすべてのメソッドに適用されます。メソッド・レベルで指定した場合は、そのメソッドにのみ適用されます。このアノテーションをクラス・レベルとメソッド・レベルの両方で指定した場合は、クラス・レベルの値がメソッド・レベルの値によってオーバーライドされます。

WebLogic Serverのセキュリティ・ロールは、WebLogic Server管理コンソールを使用して作成できます。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプセキュリティ・ロールの管理を参照してください。

属性

次の表で属性について簡単に説明します。


表A-31 javax.annotation.security.RolesAllowedアノテーションの属性

名前 説明 データ型 必須?

value

Beanクラスのメソッドにアクセスできるセキュリティ・ロールのリストを指定します。

String[]

必須


javax.annotation.security.RunAs

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

EJBコンテナ内で実際にEJBを実行するセキュリティ・ロールを指定します。

セキュリティ・ロールは、WebLogic Serverセキュリティ・レルムにあり、ユーザーやグループにマップする必要があります。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプセキュリティ・ロールの管理を参照してください。

属性

次の表で属性について簡単に説明します。


表A-32 javax.annotation.security.RunAsアノテーションの属性

名前 説明 データ型 必須?

value

EJBをどのセキュリティ・ロールとして実行するかを指定します。

String

必須


WebLogicアノテーション

この項では、次の各項で説明するWebLogicアノテーションのリファレンス情報を提供します。

weblogic.javaee.AllowRemoveDuringTransaction

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス(ステートフル・セッションEJBのみ)

トランザクション中にインスタンスが削除できるかどうかを指定するフラグです。

注意:

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のallow-remove-during-transaction要素によってオーバーライドされます。詳細は、Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスを参照してください。

weblogic.javaee.CallByReference

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス(ステートフルまたはステートレス・セッションEJBのみ)

EJBがリモートから呼び出されたか同じEAR内から呼び出されたかに関係なく、パラメータをコピーするかどうか(または参照によって渡すかどうか)を指定するフラグです。

注意:

メソッドのパラメータは、EJBがリモートで呼び出されたときには常に値で渡されます。このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のenable-call-by-reference要素によってオーバーライドされます。詳細は、Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスを参照してください。

weblogic.javaee.DisableWarnings

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

IDを指定した警告メッセージをWebLogic Serverが無効化するように指定します。

注意:

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のdisable-warning要素によってオーバーライドされます。詳細は、Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスを参照してください。

属性

次の表で属性について簡単に説明します。


表A-33 weblogic.javaee.DisableWarningsの属性

名前 説明 データ型 必須?

WarningCode

警告コードを指定します。以下の4つの値のいずれかに設定します。

  • BEA-010001 - 警告メッセージ「EJB class loaded from system classpath during deployment.」を無効化します。

  • BEA-010054 - 警告メッセージ「EJB class loaded from system classpath during compilation.」を無効化します。

  • BEA-010200 - 警告メッセージ「EJB impl class contains a public static field, method or class.」を無効化します。

  • BEA-010202 - 警告メッセージ「Call-by-reference not enabled.」を無効化します。

String

はい


weblogic.javaee.EJBReference

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス、メソッド、フィールド

EJB参照名をJNDI名にマップします。

属性

次の表で属性について簡単に説明します。


表A-34 weblogic.javaee.EJBReferenceアノテーションの属性

名前 説明 データ型 必須?

name

環境内で参照先EJBのルックアップに使用する名前を指定します。

この名前は、クラスおよびそのスーパークラスからなるデプロイメント・ユニット内でユニークでなければなりません。

String

はい

jndiName

WebLogic Serverで使用可能な実際のEJB、リソース、または参照のJNDI名を指定します。

String

はい


weblogic.javaee.Idempotent

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

同じメソッドを同じ引数で繰返し呼び出しても、1回の呼出しと同じ効果がもたらされるように記述されたEJBを指定します。これにより、フェイルオーバー・ハンドラは、失敗したサーバー上で実際に呼出しがコンパイルされるかどうかを知らなくても、失敗した呼出しを再試行できるようになります。あるメソッドについて多重呼出し不変を有効にした場合、EJBスタブは、EJBのホスト・サーバーに接続できるかぎり、あらゆる失敗から自動的に回復することができます。

注意:

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のidempotent-methodおよびretry-methods-on-rollback要素によってオーバーライドされます。詳細は、Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスを参照してください。

属性

次の表で属性について簡単に説明します。


表A-35 weblogic.javaee.Idempotentの属性

名前 説明 データ型 必須?

retryOnRollbackCount

ロールバックされたコンテナ管理のトランザクションを自動的に再試行する回数。

この属性のデフォルトは0です。

int

いいえ


weblogic.javaee.JMSClientID

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

JMS宛先に接続するときのMDBのクライアントIDを指定します。JMSトピックに対する恒久サブスクリプションで必須です。

weblogic.javaee.MessageDestinationConfigurationでMDBが使用する接続ファクトリを指定した場合、クライアントIDはconfig.xml内の関連付けられているJMSConnectionFactory要素のClientID要素で定義できます。

config.xmlJMSConnectionFactoryClientIDを指定しないか、デフォルト接続ファクトリを使用する(weblogic.javaee.MessageDestinationConfigurationを指定しない)場合、MDBはjms-client-id値をそのクライアントIDとして使用します。

注意:

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のjms-client-id要素によってオーバーライドされます。詳細は、Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスを参照してください。

属性

次の表で属性について簡単に説明します。


表A-36 weblogic.javaee.JMSClientIDの属性

名前 説明 データ型 必須?

value

クライアントID。

String

いいえ

generateUniqueID

MDBのすべてのインスタンスについて、EJBコンテナでユニークなクライアントIDを生成するかどうかを示すフラグ。このフラグを有効にすると、WebLogic Serverクラスタ内の複数のサーバー・インスタンスへの恒久MDBのデプロイが容易になります。

Class

いいえ


weblogic.javaee.JNDIName

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス(ステートフルまたはステートレス・セッションEJBのみ)

特定のクライアント・ビューのBeanクラスに適用可能なカスタムJNDI名を指定します。インタフェースなしのビューのJNDI名を示すためにBeanクラスに適用する場合、classNameは省略可能です。

注意:

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のjndi-binding要素によってオーバーライドされます。詳細は、Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスを参照してください。

属性

次の表で属性について簡単に説明します。


表A-37 weblogic.javaee.JNDINameの属性

名前 説明 データ型 必須?

classname

クライアント・ビューのクラス名。

String

いいえ

value

クライアント・ビューのJNDI名。

String

いいえ


weblogic.javaee.JNDINames

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス(ステートフルまたはステートレス・セッションEJBのみ)

EJBに適用可能な複数のカスタムJNDI名を指定します。

属性

次の表で属性について簡単に説明します。


表A-38 weblogic.javaee.JNDINamesの属性

名前 説明 データ型 必須?

value

EJBに適用する複数のカスタムJNDI名

JNDIName

いいえ


weblogic.javaee.MessageDestinationConfiguration

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス(メッセージドリブンEJBのみ)

メッセージドリブンEJBがキューとトピックを作成するためにルックアップするJMS接続ファクトリのJNDI名を指定します。

注意:

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のconnection-factory-jndi-name要素によってオーバーライドされます。詳細は、Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスを参照してください。

属性

次の表で属性について簡単に説明します。


表A-39 weblogic.javaee.MessageDestinationConfigurationの属性

名前 説明 データ型 必須?

connectionFactoryJNDIName

接続ファクトリのJNDI名。この属性のデフォルトは空文字列。

String

いいえ

initialContextFactory

WebLogic初期コンテキスト・ファクトリ。この属性のデフォルトはweblogic.jndi.WLInitialContextFactory.classです。

Class

いいえ

providerURL

プロバイダのURL。この属性のデフォルトはt3://localhost:7001です。

String

いいえ


weblogic.javaee.TransactionIsolation

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: メソッド

EJBのメソッド・レベルのトランザクション・アイソレーション設定です。

注意:

このアノテーションは、weblogic-ejb-jar.xmlデプロイメント記述子のtrans-timeout-seconds要素によってオーバーライドされます。詳細は、Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発のweblogic-ejb-jar.xmlデプロイメント記述子のリファレンスを参照してください。

属性

次の表で属性について簡単に説明します。


表A-40 weblogic.javaee.Idempotentの属性

名前 説明 データ型 必須?

IsolationLevel

アイソレーション・レベル。有効な値は以下のとおりです。

  • READ_COMMITTED - トランザクションは、他のトランザクションでコミットされた更新のみ読み取ることができます。

  • READ_UNCOMITTED - トランザクションでは、他のトランザクションでコミットされていない更新のみ読み取ることができます。

  • REPEATABLE_READ - トランザクションでデータの一部を読み取ると、そのデータが他のトランザクションで変更されても、最初の読取り時と同じ値が返されます。

  • SERIALIZABLE - このトランザクションを同時に複数回実行すると、トランザクションを順番に複数回実行することと同じことになります。

この属性のデフォルトはDEFAULT。

int

いいえ


weblogic.javaee.TransactionTimeoutSeconds

以降の節では、このアノテーションについて詳しく説明します。

説明

ターゲット: クラス

トランザクションのタイムアウトを秒単位で定義します。

属性

次の表で属性について簡単に説明します。


表A-41 weblogic.javaee.TransactionTimeoutSecondsの属性

名前 説明 データ型 必須?

value

トランザクション・タイムアウトの値(秒)。この属性のデフォルトは30 (秒)。

int

いいえ