2012-03-20 119 views
1

我使用有状态会话bean来创建购物篮。我无法访问我的豆和我收到以下错误EJB访问有状态会话Bean NameNotFoundException

ERROR BasketBean#ejb.remote.BasketBeanRemote -- service jboss.naming.context.java."BasketBean#ejb.remote.BasketBeanRemote"javax.naming.NameNotFoundException: BasketBean#ejb.remote.BasketBeanRemote -- service jboss.naming.context.java."BasketBean#ejb.remote.BasketBeanRemote" 
at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:87) 
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:173) 
at org.jboss.as.naming.InitialContext.lookup(InitialContext.java:47) 
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:209) 
at javax.naming.InitialContext.lookup(InitialContext.java:411) 
at controllers.OrderController.processRequest(OrderController.java:104) 
at controllers.OrderController.doGet(OrderController.java:157) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) 
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:139) 
at org.jboss.as.web.NamingValve.invoke(NamingValve.java:57) 
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:49) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:154) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:952) 
at java.lang.Thread.run(Thread.java:722) 

我认为这个问题是我在查找

final InitialContext context = new InitialContext(); 
BasketBeanRemote basket = (BasketBeanRemote)context.lookup("BasketBean#ejb.remote.BasketBeanRemote"); 

我不能完全肯定要放什么东西在查找字符串

BasketBeanRemote是在一个名为ejb.remote包,我BasketBeanejb.beans在我的EJB项目

查找内容应该怎样?我从我的战争项目中访问它。

+0

您的项目名称是什么? – Nurlan 2012-03-20 02:03:44

回答

0

我似乎已经找到了答案,从this post

我需要在Servlet中的@EJB注解:

@EJB(name="BasketBeanRemote", beanInterface = Bean.class) 
private BasketBeanRemote basketBean; 

然后在服务方法查找使用绑定的名称可能发生@EJB注释:

BasketBeanRemote basket = (BasketBeanRemote) new InitialContext().lookup("java:comp/env/BasketBeanRemote"); 
0
final InitialContext context = new InitialContext(); 
BasketBeanRemote basket = (BasketBeanRemote)context.lookup("YOUR_PROJECT_NAME/BasketBean/remote");