ejb3.0+JSF
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



ejb3.0+JSF Expand / Collapse
Автор
Сообщение
18.04.2007 22:01
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
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'ом

Спасибо

Сообщ. #912587
29.04.2007 19:18
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme 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. Все, что тебе нужно - интерфейсы бина.
Сообщ. #912882
03.05.2007 22:36
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
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

Сообщ. #912968
03.05.2007 23:18
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
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)
Сообщ. #912969
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, mishgun, pl

Время GMT +3:00, Сейчас 4:43