@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 <mgrigo...@apache.org>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 <jtou...@gmail.com> > 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 <jtou...@gmail.com> > 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 <mgrigo...@apache.org > >wrote: > >> > >>> Hi, > >>> > >>> On Wed, Apr 11, 2012 at 10:54 PM, Jonathan Tougas <jtou...@gmail.com> > >>> 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: users-unsubscr...@wicket.apache.org > >>> For additional commands, e-mail: users-h...@wicket.apache.org > >>> > >>> > >> > > > > -- > Martin Grigorov > jWeekend > Training, Consulting, Development > http://jWeekend.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > >