A.2. Jakarta Enterprise Beans 참조 해상도

이 섹션에서는 JBoss EAP에서 @EJB 및 @ Resource 를 구현하는 방법에 대해 설명합니다. XML은 항상 주석을 재정의하지만 동일한 규칙이 적용됩니다.

@EJB 주석에 대한 규칙
  • @EJB 주석에는 mappedName() 속성도 있습니다. 사양은 벤더별 메타데이터로 남겨둡니다. JBoss EAP는 mappedName() 을 참조하는 자카르타 엔터프라이즈 빈의 글로벌 Java 네이밍 및 디렉터리 인터페이스 이름으로 인식합니다. mappedName() 을 지정하면 다른 모든 속성이 무시되고 이 글로벌 Java Naming 및 Directory Interface 이름이 바인딩에 사용됩니다.
  • 속성이 정의되어 있지 않은 @EJB 를 지정하는 경우:

    @EJB
    ProcessPayment myEjbref;

    그러면 다음 규칙이 적용됩니다.

    • 참조 빈의 Jakarta Enterprise Beans JAR은 @EJB 주입에 사용되는 인터페이스를 사용하여 Jakarta Enterprise Beans를 검색합니다. 동일한 비즈니스 인터페이스를 게시하는 Jakarta Enterprise Beans가 두 개 이상 있는 경우 예외가 발생합니다. 해당 인터페이스가 있는 빈만 있는 경우 해당 인터페이스가 사용됩니다.
    • 해당 인터페이스를 게시하는 Jakarta Enterprise Beans의 EAR를 검색합니다. 중복이 있는 경우 예외가 발생합니다. 그렇지 않으면 일치하는 빈이 반환됩니다.
    • JBoss EAP 런타임에서 해당 인터페이스의 Jakarta Enterprise Bean을 전역적으로 검색합니다. 중복이 발견되면 예외가 발생합니다.
  • @EJB.beanName()<ejb-link> 에 해당합니다. beanName() 이 정의된 경우 검색에서 beanName() 을 사용하여 속성이 정의되지 않은 @EJB 와 동일한 알고리즘을 사용합니다. 이 규칙의 예외는 ejb-link # 구문을 사용하는 경우입니다. 참조하는 Jakarta Enterprise Beans가 있는 EAR에서 JAR에 상대 경로를 배치할 수 있습니다. 자세한 내용은 Jakarta Enterprise Beans 3.2 사양을 참조하십시오.