2010-02-17 4 views
0

@EJB 주석을 통해 상태없는 EJB를 사용하고 있습니다 ... 대부분의 경우 모든 것이 작동해야하지만 때로는 삽입 될 것으로 예상되는 부분이 NULL을 일으키는 것으로 보입니다 널 포인터 예외.주입 된 EJB 때때로 Null

이 간헐적 인 문제의 원인은 무엇입니까?

+1

인가? –

+0

예. 나는 언급 했어야했다. – carrier

+1

그런 일은 없어야합니다. 어떤 특정 하중이나 무작위로 발생합니까? 또한, 어떤 용기를 사용하고 있습니까? –

답변

1

JBoss 4.x는 자동으로 EJB를 서블릿/JSP/POJO에 삽입하지 않습니다. 그러나 주석에 대해서도 불평하지 않을 것입니다. 런타임에서 단순히 작동하지 않으며 객체는 Null로 유지됩니다. JNDI 조회를 사용해야합니다. JBoss의 워드 프로세서에서

:

조회 EJB를 @EJB의 주석 서블릿과 JSP에서 사용할 수 하지만 불행하게도, 우리는 아직 지원 바람둥이를 업데이트하지 않았습니다. 또한 Tomcat 은 이전 XML 형식으로 작동하므로 은 XML을 사용할 수 없습니다. 따라서 현재 은 글로벌 JNDI 이름을 통해 EJB를 조회해야합니다. 이는 준수하지 않지만 이면 충분히 추상화되어 이됩니다.

예 :

public void init() throws ServletException 
    { 
     super.init(); 
     try 
     { 
     InitialContext ctx = new InitialContext(); 

     // J2EE 1.5 has not yet defined exact XML <ejb-ref> syntax for EJB3 
     CalculatorLocal calculator = (CalculatorLocal)ctx.lookup("tutorial/CalculatorBean/local"); 
     setCalculator(calculator); 
     } 
     catch (NamingException e) 
     { 
     throw new RuntimeException(e); 
     } 
} 

당신이 (위의 예에서 tutorial)를 찾고있는 이름의 첫 번째 세그먼트로 EAR의 이름을 사용하십시오.

참고 :이 일반 상태 비 저장 콩

관련 문제