2011-05-05 5 views
1

많은 관리 빈을 가지고 있고내 서비스 호출 (@EJB)을 넣는 UtilClass를 만들 수 있는지 궁금합니다. 이미 시도했지만 NullPointerException이 발생했습니다. 분명히 당신이 서비스를 많이 가지고 그들을 함께 그룹화 갖고 싶어하기 때문에, 당신은을 만들 수관리 빈 EJB 주입

public class UtilClass{ 
@EJB 
private static MyFirstEjbLocal myFirstService; 
@EJB 
private static MySecondEjbLocal mySecondService; 
//other services 
//getters 

} 


public class MyManagedBean{ 
    public String myMethod(){ 

    UtilClass.getMyFirstService.doSomethingInDB(); 

    return null; 
    } 
} 

답변

1

나는 다음과 같은 작업을 수행 할 수 제안 : 이 내 UtilClass 내 관리 빈 모양을 어떻게 "추상적"콩하고, 관리되는 콩은 "추상적 인"콩을 확장 할 수 있도록 이런 방식으로는 구조 및 안전 방식으로 EJB를의에 액세스 할 수 있습니다, 다음 코드는 무슨 뜻인지 설명 할 것입니다 :

public class MyAbstractBean{ 
    @EJB 
    protected MyFirstEjbLocal myFirstService; 
    @EJB 
    protected MySecondEjbLocal mySecondService; 
    // All your other EJB's here 
    ... 
    // All other variables and methods you could need 
} 


public class MyManagedBean 
    extends MyAbstractBean{ 

    public String myMethod1(){ 

     myFirstService.doSomethingInDB(); 
     return ""; 

    } 

    public String myMethod2(){ 

     mySecondService.doSomethingInDB(); 
     return ""; 

    } 
} 

를 참조하십시오. 이 문제에 대해 더 많은 개념을 명확히해야 할 필요가 있다면.

+0

. 실제로, 나는 변환기에 문제가 있는데, 나는 내가 만든 UtilClass를 getAsObject 메서드에서 사용할 수 있다고 생각했지만, 그것을 사용할 때 NullpointerException을 가지고있다. – boskonovic

+0

그런 다음 _Injection과 관련된 문제가 POJO 클래스에서 지원되지 않는다고 생각합니다 ._ 내가 준 링크를 확인하십시오. – camiloqp

+0

관리되는 클래스 (EJB, 서블릿 등)로만 주입을 수행 할 수 있으며 서버에서는 비 - 정적 필드를 주입 ​​할 수 있습니다. camiloqp가 제안한 것처럼 추상 클래스를 사용하는 것이 좋습니다. –

관련 문제