我通过@EJB注释使用无状态EJB ...大多数情况下一切都按预期工作但似乎不时应该注入的内容解析为NULL会导致空指针异常
什么可能导致这种间歇性问题?
答案 0 :(得分:1)
JBoss 4.x不会自动将EJB注入Servlets / JSPs / POJO。但它也不会抱怨注释,它只是在运行时不起作用,并且对象将保持为空。您必须使用JNDI查找。
来自JBoss文档:
查找EJB @EJB注释 可用于servlet和JSP,但是 遗憾的是,我们还没有更新 tomcat来支持它。还有,Tomcat 使用旧的XML格式,所以你 也不能使用XML。所以现在,你 必须通过其全局查找EJB JNDI名称。这不合规,但是 如果你抽出足够的话,那就是你 细
示例:强>
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);
}
}
请务必使用您的EAR名称作为您正在查找的名称中的第一个分段(上例中的tutorial
)。
<强>参考文献:强>