6.7.2. EJB 参照の解決


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

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

  • @EJB アノテーションは mappedName() 属性を持っています。仕様はこのベンダー固有のメタデータを無視しますが、 JBoss は参照しているEJBのグローバル JNDI 名としてmappedName() を認識します。mappedName() を指定した場合、他の属性はすべて無視され、このグローバル JNDI 名がバインディングに使用されます。
  • 以下のように属性を定義せずに @EJB を指定するとします。
    @EJB 
    ProcessPayment myEjbref;
    Copy to Clipboard Toggle word wrap
    この場合、次のルールが適用されます。
    • 参照する Bean の EJB jar が、@EJB 挿入に使用されるインターフェースを持つ EJB に対して検索されます。同じビジネスインターフェースをパブリッシュする EJB が複数ある場合、例外がスローされます。インターフェースを持つ Bean が 1 つのみである場合はその Bean が使用されます。
    • そのインターフェースをパブリッシュする EJB に対する EAR を検索します。複製がある場合は例外がスローされます。それ以外の場合は、一致する Bean が返されます。
    • JBoss でそのインターフェースの EJB に対してグローバルに検索が行われます。ここでも複製があると例外がスローされます。
  • @EJB.beanName()<ejb-link> に対応します。beanName() が定義されている場合、属性が定義されていない @EJB として同じアルゴリズムが使用されますが、検索で beanName() がキーとして使用されます。ejb-link の # 構文を使用する場合、このルールの例外となります。# 構文は、参照する EJB が存在する EAR の jar への相対パスを指定できるようにします。詳細は EJB 3.1 仕様を参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat