注入的EJB有时是空的

时间:2010-02-17 18:21:53

标签: ejb-3.0 ejb

我通过@EJB注释使用无状态EJB ...大多数情况下一切都按预期工作但似乎不时应该注入的内容解析为NULL会导致空指针异常

什么可能导致这种间歇性问题?

1 个答案:

答案 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)。

<强>参考文献: