У меня есть 6 войны проект Java EE, содержащий следующее:Инъекционное Stateless Local EJB (3.1) в @WebComponent в WebLogic 12c не работает
EJB-компонент объявлен так (это также служба JAX-RS):
@Path("/booksList")
@Produces("application/json")
@Stateless
@LocalBean
@Local(BooksListEJB.class)
public class BooksListEJBImpl implements BooksListEJB
WebComponent объявлен так:
@WebServlet(urlPatterns="/initDbData")
public class DataInitListener extends HttpServlet {
@EJB
private BooksListEJB booksListEJB;
пустой beans.xml файл в папку WEB-INF
Когда я развернуть его в WebLogic 12c, я получаю следующее сообщение об ошибке:
<Warning> <weblogic.jaxrs.onwls.deploy.ejb.provider.EJBComponentProviderFactory> <BEA-000000> <An instance of EJB class com.shivandragon.jee6TestService.ejb.impl.BooksListEJBImpl could not be looked up using simple form name. Attempting to look up using the fully-qualified form name.
javax.naming.NameNotFoundException: While trying to look up comp/env/BooksListEJBImpl in /app/webapp/jee6Test-service-0.1-SNAPSHOT.war/2039754748.; remaining na
me 'comp/env/BooksListEJBImpl'
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1180)
at weblogic.jndi.internal.ApplicationNamingNode.lookup(ApplicationNamingNode.java:146)
at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:253)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:426)
at weblogic.jndi.factories.java.ReadOnlyContextWrapper.lookup(ReadOnlyContextWrapper.java:45)
Truncated. see log file for complete stacktrace
Я смотрел на подобные вопросы, и нашли предложение добавить @ManagedBean в сервлет. Пробовал это, но имел ту же ошибку.
Моего вопрос:
Не следует ли эта работа, я злоупотребляю некоторые Java EE 6 директивы/стандарт?
Пожалуйста, удалите «@LocalBean» – Sam
Если проблема не устранена, временно удалите аннотации Jax-RS. Для отладки. – Sam