2012-03-20 3 views
1

Я использую сессионный компонент с состоянием для создания корзины покупок. У меня возникли проблемы с доступом к моему бобу и я получаю следующую ошибкуEJB Accessing Stateful Session 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 и мой BasketBean в ejb.beans в моем проекте EJB

Что нужно искать? Я обращаюсь к нему из своего военного проекта.

+0

Каково название вашего проекта? – Nurlan

ответ

0

Я, кажется, нашел ответ от this post

Я нуждался в @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");