我有一个包含一个Java EE 6战项目如下:注入无状态本地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;
在WEB-INF文件夹中的空的beans.xml文件
当我的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添加到servlet。试过,但有同样的错误。
我的问题是:
不应该在该工作中,我会滥用一些Java EE 6的指令/标准?
请删除“@LocalBean” – Sam
如果问题仍然存在,请暂时删除Jax-RS注释。为了调试的缘故。 – Sam