according to the stacktrace, this component: path=3:cartForm:orderLinesView]
has this reference: final com.myapp.session.ShoppingCartLocal so looks like you are holding on to your bean directly instead of using a proxy. -igor On Thu, Nov 19, 2009 at 8:48 AM, VGJ <[email protected]> wrote: > One would think...however I tried it and it makes no difference. None of my > proxy classes implement Serializable and this exception occurs nowhere else, > also. > > Just to be certain, I just went through and implemented it on *all* of my > proxy classes in this app. No change. > > > On Thu, Nov 19, 2009 at 9:30 AM, Igor Vaynberg <[email protected]>wrote: > >> your CartProxy does not implement serialiazable so it cannot be >> serialized... >> >> -igor >> >> On Thu, Nov 19, 2009 at 7:30 AM, VGJ <[email protected]> wrote: >> > I'm not injecting it directly. I'm using a "proxy" class to get a >> reference >> > to the stateless bean's interface like so: >> > >> > public class CartProxy >> > { >> > private static ShoppingCartLocal lookupCartInterface() >> > { >> > ShoppingCartLocal cart = null; >> > >> > try >> > { >> > InitialContext ctx = new InitialContext(); >> > cart = >> > (ShoppingCartLocal)ctx.lookup("java:comp/env/ShoppingCartBean"); >> > } >> > catch (NamingException exp) >> > { >> > LogProxy.saveEntry(exp); >> > } >> > >> > return cart; >> > } >> > } >> > >> > The reference in web.xml makes this possible: >> > >> > <ejb-local-ref> >> > <ejb-ref-name>ShoppingCartBean</ejb-ref-name> >> > <ejb-ref-type>Session</ejb-ref-type> >> > <local>com.myapp.session.ShoppingCartLocal</local> >> > <ejb-link>MyProjectEJB.jar#ShoppingCartBean</ejb-link> >> > </ejb-local-ref> >> > >> > Is this not supposed to work? It's been in production for over 3 >> yrs...so I >> > hope it does! :) >> > >> > The entire app is built this way and this one page is the only one >> throwing >> > this exception. It works, it doesn't stop the show or affect anything >> > negatively, so far as I can tell. I would just like to get rid of it and >> > figure out what it is. >> > >> > Thanks again, >> > >> > -v >> > >> > On Wed, Nov 18, 2009 at 11:49 PM, Igor Vaynberg <[email protected] >> >wrote: >> > >> >> wicket stuff contains a wicket-jee module which supports injecting ejb >> >> beans into wicket components the same way that wicket-spring injects >> >> wicket beans. >> >> >> >> -igor >> >> >> >> On Wed, Nov 18, 2009 at 10:37 PM, Pieter Degraeuwe >> >> <[email protected]> wrote: >> >> > Your cart has a reference to the sessionBean ShopingCart. This is not >> >> > allowed, however. The IOC incjectionsupport makes this possible by >> >> wrapping >> >> > this EJB reference with a serializable proxy. >> >> > >> >> > I only have expecience with wicket-spring end it works great. (In your >> >> case, >> >> > define your ejb reference in spring and inject it via wicket-spring >> >> support >> >> > in your page. >> >> > problem solved! >> >> > >> >> > Pieter >> >> > >> >> > On Wed, Nov 18, 2009 at 10:50 PM, VGJ <[email protected]> wrote: >> >> > >> >> >> I'm completely at wits end here and I hope someone can point out >> what's >> >> >> wrong. >> >> >> >> >> >> I've got an e-commerce application that is simply moving between two >> >> pages >> >> >> using setRedirectPage() when going from a product detail page to the >> >> >> shopping cart page. There isn't anything remarkable about either of >> >> these >> >> >> two pages, they're basically like any other in the app. However, >> when >> >> the >> >> >> cart page loads, I get the exception at the bottom of this message. >> >> >> >> >> >> I've tried implementing Serializable on the Cart() page class but it >> >> makes >> >> >> no difference. It points out >> >> >> "com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate" as >> the >> >> >> culprit. I use a stateful session bean (ShoppingCart) which is >> passed >> >> >> around the app as part of the session (custom WebSession-derived >> class) >> >> >> >> >> >> This is the only page this occurs on. There are several other steps >> in >> >> the >> >> >> cart's checkout process that look exactly like this one and the >> >> exception >> >> >> doesn't happen on any of the others >> >> >> >> >> >> Any ideas? >> >> >> >> >> >> Exception: >> >> >> >> >> >> 25717 [httpSSLWorkerThread-8080-1] ERROR >> >> >> org.apache.wicket.util.lang.Objects >> >> >> - Error serializing object class com.myapp.ui.Cart [object=[Page >> class = >> >> >> com.myapp.ui.Cart, id = 3, version = 0]] >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: >> >> >> Unable to serialize class: >> >> >> com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate >> >> >> Field hierarchy is: >> >> >> 3 [class=com.myapp.ui.Cart, path=3] >> >> >> private java.lang.Object >> org.apache.wicket.MarkupContainer.children >> >> >> [class=[Ljava.lang.Object;] >> >> >> private >> >> >> org.apache.wicket.markup.html.ContainerWithAssociatedMarkupHelper >> >> >> >> >> >> >> >> >> org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup.markupHelper[6] >> >> >> [class=org.apache.wicket.markup.html.form.Form, path=3:cartForm] >> >> >> private java.lang.Object >> >> org.apache.wicket.MarkupContainer.children >> >> >> [class=[Ljava.lang.Object;] >> >> >> private java.lang.Object >> >> >> org.apache.wicket.MarkupContainer.children[0] >> >> [class=com.myapp.ui.Cart$1, >> >> >> path=3:cartForm:orderLinesView] >> >> >> final com.myapp.session.ShoppingCartLocal >> >> >> com.myapp.ui.Cart$1.val$cart [class=$Proxy92] >> >> >> protected java.lang.reflect.InvocationHandler >> >> >> java.lang.reflect.Proxy.h >> >> >> >> [class=com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate] >> >> >> <----- field that is not serializable >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:346) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:392) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:392) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(SerializableChecker.java:684) >> >> >> at >> >> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:129) >> >> >> at >> >> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322) >> >> >> at >> >> >> >> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1120) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:203) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(DiskPageStore.java:840) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put(SecondLevelCacheSessionStore.java:332) >> >> >> at >> org.apache.wicket.Session.requestDetached(Session.java:1404) >> >> >> at >> org.apache.wicket.RequestCycle.detach(RequestCycle.java:1176) >> >> >> at >> org.apache.wicket.RequestCycle.steps(RequestCycle.java:1454) >> >> >> at >> org.apache.wicket.RequestCycle.request(RequestCycle.java:545) >> >> >> at >> >> >> >> >> >> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:456) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:289) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) >> >> >> at >> com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) >> >> >> at >> >> >> >> >> >> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) >> >> >> at >> >> >> >> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) >> >> >> at >> >> >> >> >> >> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) >> >> >> at >> >> >> >> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) >> >> >> at >> >> >> >> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272) >> >> >> at >> >> >> >> >> >> >> >> >> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637) >> >> >> at >> >> >> >> >> >> >> >> >> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568) >> >> >> at >> >> >> >> >> >> >> >> >> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813) >> >> >> at >> >> >> >> >> >> >> >> >> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) >> >> >> at >> >> >> >> >> >> >> >> >> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) >> >> >> at >> >> >> >> >> >> >> >> >> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) >> >> >> at >> >> >> >> com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) >> >> >> at >> >> >> >> >> >> >> >> >> com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) >> >> >> Caused by: java.io.NotSerializableException: >> >> >> com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate >> >> >> at >> >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156) >> >> >> at >> >> >> >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509) >> >> >> at >> >> >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474) >> >> >> at >> >> >> >> >> >> >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) >> >> >> at >> >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) >> >> >> at >> >> >> >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509) >> >> >> at >> >> >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474) >> >> >> at >> >> >> >> >> >> >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) >> >> >> at >> >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) >> >> >> at >> >> >> java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338) >> >> >> at >> >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146) >> >> >> at >> >> >> >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509) >> >> >> at >> >> >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474) >> >> >> at >> >> >> >> >> >> >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) >> >> >> at >> >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) >> >> >> at >> >> >> java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338) >> >> >> at >> >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146) >> >> >> at >> >> >> >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509) >> >> >> at >> >> >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474) >> >> >> at >> >> >> >> >> >> >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) >> >> >> at >> >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) >> >> >> at >> >> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) >> >> >> at >> >> >> >> >> >> >> >> >> org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:121) >> >> >> ... 38 more >> >> >> >> >> > >> >> > >> >> > >> >> > -- >> >> > Pieter Degraeuwe >> >> > Systemworks bvba >> >> > Belgiëlaan 61 >> >> > 9070 Destelbergen >> >> > GSM: +32 (0)485/68.60.85 >> >> > Email: [email protected] >> >> > visit us at http://www.systemworks.be >> >> > >> >> >> >> --------------------------------------------------------------------- >> >> 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] >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
