Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

8.8.2. EJB リファレンス解決

このセクションでは、JBoss がどのように実装するかについて説明します@EJB@Resource。XML は常にアノテーションを上書きしますが、同じルールが適用されることに注意してください。

@EJB アノテーションのルール

  • The@EJB注釈にもmappedName()属性。仕様ではこれをベンダー固有のメタデータとして残していますが、JBoss はこれを認識しますmappedName()参照している EJB のグローバル JNDI 名として。mappedName() を指定した場合は、他のすべての属性は無視され、このグローバル JNDI 名がバインディングに使用されます。
  • 指定した場合@EJB属性が定義されていない場合:
    @EJB 
    ProcessPayment myEjbref;
    次に、以下のルールが適用されます。
    • 参照 Bean の EJB jar は、@EJB インジェクションで使用されるインターフェースで EJB を検索します。同じビジネスインターフェースを公開する EJB が複数ある場合、例外が発生します。このインターフェースを持つ BIOSean が 1 つしかない場合は、その Bean が使用されます。
    • EAR でインターフェースを公開する EJB を検索します。重複が生じると、例外が発生します。それ以外の場合は、一致する Bean を返します。
    • JBoss ランタイムで、そのインターフェースの EJB をグローバルに検索します。同様に、複製が見つかると、例外が発生します。
  • @EJB.beanName() に対応<ejb-link>。の場合beanName()が定義されたら、と同じアルゴリズムを使用します@EJBを使用する以外に属性が定義されていないbeanName()検索のキーとして。この規則の例外は、ejb-link'#' 構文を使用する場合です。'#' 構文を使用すると、参照している EJB が配置されている EAR 内の jar への相対パスを設定できます。詳細は EJB 3.1 仕様を参照してください。