2012-03-20 206 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");