【问题标题】:Java EJB not injectingJava EJB 不注入
【发布时间】:2016-05-15 12:25:23
【问题描述】:

我的测试豆

@Stateless
public class TestBean implements TestLocal {
    public String getMessage(String name) {
        return "Test "+ name;
    }
}

我的界面

@Local
public interface TestLocal {
    public String getMessage(String name);
}

我正在使用它

@EJB
private TestLocal testLocal;

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String result;=testLocal.getMessage("ASDASD");
    req.getSession().setAttribute("Test1",result);
    RequestDispatcher rd=req.getRequestDispatcher("Index.jsp");
    rd.forward(req,resp);
}

我在结果行上得到 NullPointerException。

【问题讨论】:

  • 您应该在同一个 EAR 项目中拥有 ejb 和 servlet。否则,使用远程访问。

标签: java ejb


【解决方案1】:

EJB 仅注入托管 bean。当一个 bean 被某个注入容器管理时,它是被管理的,例如通过 JSF 自己的 @ManagedBean、CDI 的 @Named 等。您甚至可以将一个 EJB 注入另一个 EJB。您不能在非托管类中注入 EJB。 我不认为您的课程是由注入容器管理的

【讨论】:

  • 谢谢。没有其他框架如何解决这个问题?
  • 您是否使用任何注射容器....?如果是这样,则必须按照该命令使用命令。示例:如果您使用 Spring 作为注入容器,则可以通过在类级别添加 @Component 注释来使类成为托管类。
  • 我不使用注射容器
  • Plagiarism 不受欢迎。请修改您的答案以包括您找到信息的来源,而不是逐字复制粘贴并作为您自己的。
猜你喜欢
  • 2016-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-29
  • 1970-01-01
  • 2016-01-30
  • 1970-01-01
相关资源
最近更新 更多