@EJB 주석을 통해 상태없는 EJB를 사용하고 있습니다 ... 대부분의 경우 모든 것이 작동해야하지만 때로는 삽입 될 것으로 예상되는 부분이 NULL을 일으키는 것으로 보입니다 널 포인터 예외.주입 된 EJB 때때로 Null
이 간헐적 인 문제의 원인은 무엇입니까?
@EJB 주석을 통해 상태없는 EJB를 사용하고 있습니다 ... 대부분의 경우 모든 것이 작동해야하지만 때로는 삽입 될 것으로 예상되는 부분이 NULL을 일으키는 것으로 보입니다 널 포인터 예외.주입 된 EJB 때때로 Null
이 간헐적 인 문제의 원인은 무엇입니까?
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의 이름을 사용하십시오.
참고 :이 일반 상태 비 저장 콩
인가? –
예. 나는 언급 했어야했다. – carrier
그런 일은 없어야합니다. 어떤 특정 하중이나 무작위로 발생합니까? 또한, 어떤 용기를 사용하고 있습니까? –