Я не очень осведомлен о EJB, пожалуйста, попробуйте меня, если я прошу что-то очевидное. Это мой EJB:EJB Поиск не удался для «java: comp/env/ejb/CategoryFacade»
@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. Может ли кто-нибудь вести меня?