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 <zambi...@gmail.com> 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: pieter.degrae...@systemworks.be
visit us at http://www.systemworks.be

Reply via email to