我不太了解 EJB,如果我要问一些明显的问题,请执行我。这是我的 EJB:
@Stateless
public class CategoryFacade extends AbstractFacade<Category> {
@PersistenceContext(unitName = "AffableBeanPU")
private EntityManager em;
protected EntityManager getEntityManager() {
return em;
}
public CategoryFacade() {
super(Category.class);
}
}
我有一个名为 的类AffableBeanService
,基本上它是一个 REST 服务类。在此我试图调用 EJB,如下所示:
@GET
@Path("/categories/{categoryId}")
public String getInfo(@PathParam("categoryId") String categoryId) {
//Note I have removed try, catch etc to save the space
CategoryFacade categoryFacade; //This is a class, not a interface
InitialContext ic = new InitialContext();
categoryFacade = (CategoryFacade)ic.lookup("java:comp/env/ejb/CategoryFacade");
}
在运行时,我收到异常为javax.naming.NamingException: Lookup failed for 'java:/env/ejb/CategoryFacade' in SerialContext[myEnv
. 我不确定,我在这里缺少什么。谁能帮帮我吗?
我也试过这样:
@EJB
CategoryFacade categoryFacade;
但是再次没有发生 EJB 注入,我得到了 NullPointerException。我假设我缺少一些配置,或者我不确定我是否以正确的方式调用 EJB。谁能指导我?