weld doesnt wrap ejbs in serializable proxies. if you want to inject ejbs you should do it with wicket-jee module found in wicketstuff.
-igor On Thu, Apr 12, 2012 at 5:55 AM, Jonathan Tougas <[email protected]> wrote: > @Override > protected void onBeforeRender() { > System.out.println( foo ); > System.out.println( foo.getClass() ); > super.onBeforeRender(); > } > > When using @Stateless, the output is : > > 08:52:35,027 INFO [stdout] (http--127.0.0.1-8080-1) Proxy for view class: > com.foo.FooStateless of EJB: FooStateless > 08:52:35,028 INFO [stdout] (http--127.0.0.1-8080-1) class > com.foo.FooStateless$Proxy$_$$_Weld$Proxy$ > > when using @ApplicationScoped, the output is: > > 08:54:00,831 INFO [stdout] (http--127.0.0.1-8080-4) > com.foo.FooStateless@201a6e9 > 08:54:00,831 INFO [stdout] (http--127.0.0.1-8080-4) class > com.foo.FooStateless$Proxy$_$$_WeldClientProxy > > > On Thu, Apr 12, 2012 at 8:46 AM, Martin Grigorov <[email protected]>wrote: > >> The difference is that scoped beans are represented by proxy. >> I guess there is no proxy for the stateless EJB. You can verify this >> by putting a breakpoint in your page's #onBeforeRender() and checking >> the type of the injected value. >> >> Later during deserialization the current class loader cannot load >> class org.jboss.msc.service.ServiceName. >> In the case with scoped bean the proxy is loaded without problems and >> it seems the proxy itself deals with the class loading of the >> underlying bean. >> >> On Thu, Apr 12, 2012 at 3:40 PM, Jonathan Tougas <[email protected]> >> wrote: >> > I'm not familiar with the Wicketopia source, but doing a quick scan I >> can't >> > find any EJBs in there. The problem in this case occurs if the >> FooStateless >> > class is @Stateless. Changing this to @ApplicationScoped, the problem >> goes >> > away. >> > >> > On Thu, Apr 12, 2012 at 8:28 AM, Jonathan Tougas <[email protected]> >> wrote: >> > >> >> A stateless bean is injected into the home page class. Load the page in >> >> two tabs (so twice in the same session), then on the first tab, press >> the >> >> button. The error occurs every time in this scenario. >> >> >> >> On Thu, Apr 12, 2012 at 2:41 AM, Martin Grigorov <[email protected] >> >wrote: >> >> >> >>> Hi, >> >>> >> >>> On Wed, Apr 11, 2012 at 10:54 PM, Jonathan Tougas <[email protected]> >> >>> wrote: >> >>> > I'm running Wicket 1.5 on JBoss 7.1.1 with some CDI thrown in to the >> >>> mix. >> >>> > In certain cases when Wicket deserializes a Page containing a >> reference >> >>> to >> >>> > a CDI bean, I get this exception: >> >>> >> >>> In what cases exactly ? >> >>> Because the problem is >> >>> >> >>> Caused by: java.lang.ClassNotFoundException: >> >>> org.jboss.msc.service.ServiceName from [Module >> >>> "deployment.wicket.war:main" >> >>> from Service Module Loader] >> >>> >> >>> In what cases this class is no more loadable by the current class >> loader ? >> >>> >> >>> > >> >>> > 15:10:30,841 ERROR [org.apache.wicket.request.RequestHandlerStack] >> >>> > (http--127.0.0.1-8080-1) Error detaching RequestHandler: >> >>> > java.lang.RuntimeException: Could not deserialize object using: class >> >>> > >> >>> >> org.apache.wicket.serialize.java.JavaSerializer$ClassResolverObjectInputStream >> >>> > at >> >>> > >> >>> >> org.apache.wicket.serialize.java.JavaSerializer.deserialize(JavaSerializer.java:137) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.pageStore.DefaultPageStore.deserializePage(DefaultPageStore.java:388) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.pageStore.DefaultPageStore.getPage(DefaultPageStore.java:127) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.page.PageStoreManager$SessionEntry.getPage(PageStoreManager.java:192) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.page.PageStoreManager$PersistentRequestAdapter.getPage(PageStoreManager.java:327) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.page.AbstractPageManager.getPage(AbstractPageManager.java:102) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.page.PageManagerDecorator.getPage(PageManagerDecorator.java:50) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.page.PageAccessSynchronizer$2.getPage(PageAccessSynchronizer.java:257) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.DefaultMapperContext.getPageInstance(DefaultMapperContext.java:117) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.request.handler.PageProvider.getStoredPage(PageProvider.java:292) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.request.handler.PageProvider.isNewPageInstance(PageProvider.java:205) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.request.handler.PageProvider.getPageParameters(PageProvider.java:184) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.request.handler.logger.PageLogData.<init>(PageLogData.java:51) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.request.handler.logger.ListenerInterfaceLogData.<init>(ListenerInterfaceLogData.java:56) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.request.handler.ListenerInterfaceRequestHandler.detach(ListenerInterfaceRequestHandler.java:134) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.detach(RequestCycle.java:792) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.request.RequestHandlerStack.detach(RequestHandlerStack.java:180) >> >>> > [wicket-request-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java:596) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:539) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:287) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:185) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:241) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) >> >>> > [jbossweb-7.0.10.Final.jar:] >> >>> > at >> >>> > >> >>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) >> >>> > [jbossweb-7.0.10.Final.jar:] >> >>> > at >> >>> > >> >>> >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) >> >>> > [jbossweb-7.0.10.Final.jar:] >> >>> > at >> >>> > >> >>> >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) >> >>> > [jbossweb-7.0.10.Final.jar:] >> >>> > at >> >>> > >> >>> >> org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:154) >> >>> > [jboss-as-web-7.1.0.Final.jar:7.1.0.Final] >> >>> > at >> >>> > >> >>> >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) >> >>> > [jbossweb-7.0.10.Final.jar:] >> >>> > at >> >>> > >> >>> >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >> >>> > [jbossweb-7.0.10.Final.jar:] >> >>> > at >> >>> > >> >>> >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >> >>> > [jbossweb-7.0.10.Final.jar:] >> >>> > at >> >>> > >> >>> >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) >> >>> > [jbossweb-7.0.10.Final.jar:] >> >>> > at >> >>> > >> >>> >> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) >> >>> > [jbossweb-7.0.10.Final.jar:] >> >>> > at >> >>> > >> >>> >> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) >> >>> > [jbossweb-7.0.10.Final.jar:] >> >>> > at >> >>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) >> >>> > [jbossweb-7.0.10.Final.jar:] >> >>> > at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_02] >> >>> > Caused by: java.lang.ClassNotFoundException: >> >>> > org.jboss.msc.service.ServiceName from [Module >> >>> "deployment.wicket.war:main" >> >>> > from Service Module Loader] >> >>> > at >> >>> >> org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) >> >>> > at >> >>> > >> >>> >> org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) >> >>> > at >> >>> > >> >>> >> org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) >> >>> > at >> >>> > >> >>> >> org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) >> >>> > at >> >>> > >> >>> >> org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) >> >>> > at java.lang.Class.forName0(Native Method) [rt.jar:1.7.0_02] >> >>> > at java.lang.Class.forName(Class.java:264) [rt.jar:1.7.0_02] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.application.AbstractClassResolver.resolveClass(AbstractClassResolver.java:108) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.serialize.java.JavaSerializer$ClassResolverObjectInputStream.resolveClass(JavaSerializer.java:216) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > at >> >>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1593) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> > >> >>> >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750) >> >>> > [rt.jar:1.7.0_02] >> >>> > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> >>> > [rt.jar:1.7.0_02] >> >>> > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >> >>> > [rt.jar:1.7.0_02] >> >>> > at java.util.HashMap.readObject(HashMap.java:1043) [rt.jar:1.7.0_02] >> >>> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> > >> >>> >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> > >> >>> >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >>> > [rt.jar:1.7.0_02] >> >>> > at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_02] >> >>> > at >> >>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> > >> >>> >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >> >>> > [rt.jar:1.7.0_02] >> >>> > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> >> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> > >> >>> >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >> >>> > [rt.jar:1.7.0_02] >> >>> > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> >> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> > >> >>> >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >> >>> > [rt.jar:1.7.0_02] >> >>> > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> >> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> > >> >>> >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >> >>> > [rt.jar:1.7.0_02] >> >>> > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> >> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> > >> >>> >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >> >>> > [rt.jar:1.7.0_02] >> >>> > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> >> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> > >> >>> >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >> >>> > [rt.jar:1.7.0_02] >> >>> > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> >> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> > >> >>> >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >> >>> > [rt.jar:1.7.0_02] >> >>> > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> >>> > [rt.jar:1.7.0_02] >> >>> > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >> >>> > [rt.jar:1.7.0_02] >> >>> > at >> >>> > >> >>> >> org.apache.wicket.serialize.java.JavaSerializer.deserialize(JavaSerializer.java:120) >> >>> > [wicket-core-1.5.5.jar:1.5.5] >> >>> > ... 34 more >> >>> > >> >>> > I put up a simple project to demonstrate this at >> >>> > http://code.google.com/p/jonatoga/source/browse/#svn%2Fwicket-ex1. >> To >> >>> > reproduce the problem load the home page in two tabs, then on the >> first >> >>> > tab, press the button. >> >>> > >> >>> > Any ideas as to what's going on? >> >>> >> >>> >> >>> >> >>> -- >> >>> Martin Grigorov >> >>> jWeekend >> >>> Training, Consulting, Development >> >>> http://jWeekend.com >> >>> >> >>> --------------------------------------------------------------------- >> >>> To unsubscribe, e-mail: [email protected] >> >>> For additional commands, e-mail: [email protected] >> >>> >> >>> >> >> >> >> >> >> -- >> Martin Grigorov >> jWeekend >> Training, Consulting, Development >> http://jWeekend.com >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
