2009-10-21 6 views
3

(다른 프로젝트와 같은 보스) : 내가EJB I는 다음 설치 한

제이보스 그 아래 4.2.3
있습니다
구성 요소 X에

 
--> Project A (Wich is not SEAM 2.1.2GA based) 
    EJBs: 
     * beanA (JNDI = beanA/remote) 
     * beanB (JNDI = beanB/remote) 

--> Project B (SEAM based) 
    EJBs/Components: 
     * ComponentX 
     * ComponentY 

내가 현재이 코드 조각 :

@Scope(ScopeType.CONVERSATION) 
@Name("ComponentX") 
public class ComponentX implements java.io.Serializable { 
... 
@EJB 
beanAInterface beanA; 
.... 
public foo(){ 
    beanA.bar(); // <--------- beanA is null, even with mapped name and etc, only works 
        //   if i direct lookup with Context().lookup("beanA/remote") 
} 

해결 방법에 대한 의견이 있으십니까?

미리 감사드립니다. 당신이 그 (것)들을 주입하기 위해 @EJB 주석을 사용할 수 있도록

}

답변

2

귀하의 ComponentX 클래스는,는 EJB 없습니다. 몇 가지 옵션이 있습니다. ComponentX를 @Stateless 또는 @Statefull과 @Local 또는 @Remote 인터페이스를 추가하는 EJB로 변환하면 AS는 ComponentX가 EJB임을 알게되고 원하는 주입을 어떻게 처리해야하는지 알 수 있습니다. 다른 옵션은 ComponentX를 단순히 구성 요소로 만들고 InitialContext # lookup을 사용하여 "beanA/remote"에 대한 참조를 직접 얻는 것입니다.

+0

매력처럼 작동했습니다. 감사합니다. –

관련 문제