|
|
|
новичок
      
участник
Last Login: 11.07.2007 23:12
Сообщ.: 3,
Visits: 32
|
|
| Доброго времени суток. Прошу у вас совета и помощи. Возможна ли реализация такой связки: JSF+ejb3.0? И есть ли вообще смысл в этом? Хочу создать бейкин-бин, который бы обращался к сессионному бину, создающего несколько энтити-бинов. Только вот в чем загвоздка, как получить доступ к этому самому сессионному бину?.. К примеру, такое обращение к сессионному бину явно ни к чему не приведет:) вернее вылетают эксепшены(что и понятно - откуда бейкин-бину знать, что это за класс такой OrderAgentBean): Context jndiContext = getInitialContext(); Object ref = jndiContext.lookup("OrderAgentBean/local"); OrderAgentRemote dao = (OrderAgentRemote)ref; При этом бины продеплоил... Если пихать энтити и сессионные бины вместе с бейкин-бинами в War-ник, то не возникает JNDI-имени (что, наверно, и правильно)... Вот и как быть? Помогите пожалуйста, ну или ткните в ссылку на доки какие-нть... Ах да, пользуюсь JBoss'ом Спасибо
|
|
|
|
|
Supreme Being
      
участник
Last Login: 29.04.2007 19:12
Сообщ.: 548,
Visits: 5 276
|
|
Не понял я в чем проблема у тебя.
К примеру, такое обращение к сессионному бину явно ни к чему не приведет:) вернее вылетают эксепшены(что и понятно - откуда бейкин-бину знать, что это за класс такой OrderAgentBean):
Context jndiContext = getInitialContext();
Object ref = jndiContext.lookup("OrderAgentBean/local");
OrderAgentRemote dao = (OrderAgentRemote)ref;
getInitialContext() - чей метод? И какие эксепшены вылетают?
Больше информации давай, т.к. наш штатный телепат в отпуске до августа.
Для справки:
Твоему бейкин-бину (чтобы это не было) как раз и не надо знать ничего про класс, который реализует session bean. Все, что тебе нужно - интерфейсы бина.
|
|
|
|
|
новичок
      
участник
Last Login: 11.07.2007 23:12
Сообщ.: 3,
Visits: 32
|
|
| C телепатом, конечно, незадача :( getInitialContext() - метод бейкин-бина: public static Context getInitialContext() throws javax.naming.NamingException { return new javax.naming.InitialContext(); }
В общем, я скомпилил бейкин-бин в одном пакете с сессионными и энтити (только в этом случае смог скомпилить, если в разных, то эклипс ругается, что нету таких классов и интерфесов). Потом раскидал их: - энтити и сессионные запихнул в джар-ник и сдеплоил - получил jndi-имя(которое и JNDIViewer показывает, как сессионный бин, так и его интерфейсы) - бейкин-бин запихнул в вар-ник вместе с jsf. Ну и попробовал все это запустить из браузера. JSF-подгрузилось, но как только пытаюсь обработать эвент от кнопки получаю вот такой эксепшн: ERROR [InvokeApplicationPhase] java.lang.ClassCastException: $Proxy91 cannot be cast to com.airport.airsession.OrderAgentRemote javax.faces.el.EvaluationException: java.lang.ClassCastException: $Proxy91 cannot be cast to com.air port.airsession.OrderAgentRemote at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:150) at javax.faces.component.UICommand.broadcast(UICommand.java:325) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:287) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:401) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:95) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110) at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle(ReceiveSendUpdates.java :81) at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(ReceiveSendUpdates.java:59) at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer$Matcher.serviceOnMatch (PathDispatcherServer.java:52) at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcher Server.java:21) at com.icesoft.faces.webapp.http.core.PushServer.service(PushServer.java:25) at com.icesoft.faces.webapp.http.servlet.AdapterServlet.service(AdapterServlet.java:16) at com.icesoft.faces.webapp.http.servlet.PushServlet.service(PushServlet.java:37) at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatche r.java:41) at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:18) at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundSer vlet.java:31) at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:31 ) at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatche r.java:41) at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:18) at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:51) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j ava:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java: 463) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:359) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:54) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j ava:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j ava:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.ja va:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Htt p11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.ClassCastException: $Proxy91 cannot be cast to com.airport.airsession.OrderAgen tRemote at com.airport.clients.Client.makeOrder(Client.java:50) at com.airport.clients.Client.listen(Client.java:42) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146) ... 47 more
|
|
|
|
|
новичок
      
участник
Last Login: 11.07.2007 23:12
Сообщ.: 3,
Visits: 32
|
|
| И ещё вдогонку... Подключил джар-ник с сессионными и энтити бинами как библиотеку простую. Ну сдеплоил вар-файл с JSF. При обработке эвента от кнопки на форме JBoss выдает вот такое, это я частично пнимаю :) просто нету JNDI-имени, соответственно, нет связи с инетрфейсом, ну и сессионным бином, как следствие: 22:59:44,492 ERROR [STDERR] javax.naming.NameNotFoundException: OrderAgentBean not bound 22:59:44,502 ERROR [STDERR] at org.jnp.server.NamingServer.getBinding(NamingServer.java:529) 22:59:44,502 ERROR [STDERR] at org.jnp.server.NamingServer.getBinding(NamingServer.java:537) 22:59:44,502 ERROR [STDERR] at org.jnp.server.NamingServer.getObject(NamingServer.java:543) 22:59:44,512 ERROR [STDERR] at org.jnp.server.NamingServer.lookup(NamingServer.java:267) 22:59:44,512 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625) 22:59:44,512 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587) 22:59:44,512 ERROR [STDERR] at javax.naming.InitialContext.lookup(InitialContext.java:392) 22:59:44,522 ERROR [STDERR] at com.airport.clients.Client.makeOrder(Client.java:49) 22:59:44,522 ERROR [STDERR] at com.airport.clients.Client.listen(Client.java:42) 22:59:44,522 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 22:59:44,522 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorI mpl.java:39) 22:59:44,522 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodA ccessorImpl.java:25) 22:59:44,532 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597) 22:59:44,532 ERROR [STDERR] at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java: 146) 22:59:44,542 ERROR [STDERR] at javax.faces.component.UICommand.broadcast(UICommand.java:325) 22:59:44,542 ERROR [STDERR] at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java: 287) 22:59:44,552 ERROR [STDERR] at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.ja va:401) 22:59:44,552 ERROR [STDERR] at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeAppl icationPhase.java:95) 22:59:44,562 ERROR [STDERR] at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:26 8) 22:59:44,562 ERROR [STDERR] at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java: 110) 22:59:44,572 ERROR [STDERR] at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle (ReceiveSendUpdates.java:81) 22:59:44,572 ERROR [STDERR] at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(Rec eiveSendUpdates.java:59) 22:59:44,572 ERROR [STDERR] at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServe r$Matcher.serviceOnMatch(PathDispatcherServer.java:52) 22:59:44,582 ERROR [STDERR] at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServe r.service(PathDispatcherServer.java:21) 22:59:44,592 ERROR [STDERR] at com.icesoft.faces.webapp.http.core.PushServer.service(PushServer. java:25) 22:59:44,592 ERROR [STDERR] at com.icesoft.faces.webapp.http.servlet.AdapterServlet.service(Adap terServlet.java:16) 22:59:44,602 ERROR [STDERR] at com.icesoft.faces.webapp.http.servlet.PushServlet.service(PushSer vlet.java:37) 22:59:44,602 ERROR [STDERR] at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serv iceOnMatch(PathDispatcher.java:41) 22:59:44,602 ERROR [STDERR] at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(Path Dispatcher.java:18) 22:59:44,612 ERROR [STDERR] at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.ser vice(MainSessionBoundServlet.java:31) 22:59:44,612 ERROR [STDERR] at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(S essionDispatcher.java:31) 22:59:44,622 ERROR [STDERR] at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serv iceOnMatch(PathDispatcher.java:41) 22:59:44,622 ERROR [STDERR] at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(Path Dispatcher.java:18) 22:59:44,632 ERROR [STDERR] at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainSer vlet.java:51) 22:59:44,632 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) 22:59:44,642 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:252) 22:59:44,642 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(Applicat ionFilterChain.java:173) 22:59:44,652 ERROR [STDERR] at org.apache.catalina.core.ApplicationDispatcher.invoke(Application Dispatcher.java:672) 22:59:44,652 ERROR [STDERR] at org.apache.catalina.core.ApplicationDispatcher.processRequest(App licationDispatcher.java:463) 22:59:44,662 ERROR [STDERR] at org.apache.catalina.core.ApplicationDispatcher.doForward(Applicat ionDispatcher.java:359) 22:59:44,662 ERROR [STDERR] at org.apache.catalina.core.ApplicationDispatcher.forward(Applicatio nDispatcher.java:301) 22:59:44,672 ERROR [STDERR] at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(Blocking Servlet.java:54) 22:59:44,672 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:252) 22:59:44,682 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(Applicat ionFilterChain.java:173) 22:59:44,682 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHead erFilter.java:96) 22:59:44,692 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:202) 22:59:44,692 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(Applicat ionFilterChain.java:173) 22:59:44,702 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrap perValve.java:213) 22:59:44,702 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardCont extValve.java:178) 22:59:44,712 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Sec urityAssociationValve.java:175) 22:59:44,712 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContext Valve.java:74) 22:59:44,722 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostVal ve.java:126) 22:59:44,722 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportVal ve.java:105) 22:59:44,732 ERROR [STDERR] at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedC onnectionValve.java:156) 22:59:44,732 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngin eValve.java:107) 22:59:44,732 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter .java:148) 22:59:44,742 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor. java:869) 22:59:44,742 ERROR [STDERR] at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandl er.processConnection(Http11BaseProtocol.java:664) 22:59:44,752 ERROR [STDERR] at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpE ndpoint.java:527) 22:59:44,752 ERROR [STDERR] at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlav eWorkerThread.java:112) 22:59:44,762 ERROR [STDERR] at java.lang.Thread.run(Thread.java:619)
|
|
|
|