Did you put a breakpoint on the serialization exception? I'd guess that something in your component hierarchy is holding a reference to AccountDAO. Wicket only proxies @SpringBean annotated variables.
On Sun, Jul 31, 2011 at 10:10 PM, Joe Fawzy <[email protected]> wrote: > Hi > > i am living on the edge ,using wicket 1.5RC5.1 (the latest) > and also using the newly released Spring data-jpa project for data access > > i do not use or reference PersistenceExceptionTranslationInterceptor > directly, actually i never know it is there till i saw that error > > based on its name it is an interceptor which translate the jpa or jdbc > exception to spring's counterpart > > in AccountManager there is an instance of AccountDAO which use this > persistence technology > > i thought it might be a solution to use kryo serialization as it does not > require the object to be serializable, but the site does not recommend > using > it in production as it is in its early stages and not yet stable > > Any help please? > > Thanks > > Joe > > On Mon, Aug 1, 2011 at 4:35 AM, Dan Retzlaff <[email protected]> wrote: > > > Hi Joe, > > > > Based on the depth of that serialization stack, I doubt it's your > > AccountManager proxy that's giving you problems. I usually just > breakpoint > > NotSerializableException and walk up the stack to find the culprit. Any > > change your CreatePage uses a method on AccountManager that returns an > > object with PersistenceExceptionTranslationInterceptor, then holds a > > reference to it? If so, that'll be a problem since Wicket doesn't know to > > proxy that one. > > > > Dan > > > > On Sun, Jul 31, 2011 at 5:08 PM, Joe Fawzy <[email protected]> wrote: > > > > > Hi > > > i have a serialization problem with spring > > > My CreatePage class looks like:- > > > > > > public class CreatePage extends WebPage{ > > > @SpringBean > > > AccountManager accountManager; > > > } > > > > > > as i am using @SpringBean , it should handle creating a serializable > > proxy > > > for me BUT > > > > > > i got the following exception > > > > > > > > > > > > ERROR - JavaSerializer - Error serializing object class > > > com.app.view.account.CreatePage [object=[Page class = > > > com.app.view.account.CreatePage, id = 1, render count = 1]] > > > java.io.NotSerializableException: > > > > > > org.springframework.dao.support.PersistenceExceptionTranslationInterceptor > > > 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.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.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.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.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.serialize.java.JavaSerializer.serialize(JavaSerializer.java:77) > > > at > > > > > > > > > org.apache.wicket.pageStore.DefaultPageStore.serializePage(DefaultPageStore.java:356) > > > at > > > > > > > > > org.apache.wicket.pageStore.DefaultPageStore.storePage(DefaultPageStore.java:142) > > > at > > > > > > > > > org.apache.wicket.page.PageStoreManager$PersistentRequestAdapter.storeTouchedPages(PageStoreManager.java:377) > > > at > > > > > > > > > org.apache.wicket.page.RequestAdapter.commitRequest(RequestAdapter.java:171) > > > at > > > > > > > > > org.apache.wicket.page.AbstractPageManager.commitRequest(AbstractPageManager.java:94) > > > at > > > > > > > > > org.apache.wicket.page.PageManagerDecorator.commitRequest(PageManagerDecorator.java:68) > > > at > > > > > > > > > org.apache.wicket.page.PageAccessSynchronizer$2.commitRequest(PageAccessSynchronizer.java:213) > > > at org.apache.wicket.Application$2.onDetach(Application.java:1548) > > > at > > > > > > > > > org.apache.wicket.request.cycle.RequestCycleListenerCollection$3.notify(RequestCycleListenerCollection.java:100) > > > at > > > > > > > > > org.apache.wicket.request.cycle.RequestCycleListenerCollection$3.notify(RequestCycleListenerCollection.java:96) > > > at > > > > > > > > > org.apache.wicket.util.listener.ListenerCollection.reversedNotify(ListenerCollection.java:121) > > > at > > > > > > > > > org.apache.wicket.util.listener.ListenerCollection.reversedNotify(ListenerCollection.java:112) > > > at > > > > > > > > > org.apache.wicket.request.cycle.RequestCycleListenerCollection.onDetach(RequestCycleListenerCollection.java:94) > > > at > > > > > > > > > org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java:540) > > > at > > > > > > org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:479) > > > at > > > > > > > > > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:257) > > > at > > > > > > > > > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:160) > > > at > > > > > > > > > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:216) > > > at > > > > > > > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > > > at > > > > > > > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > > > at > > > > > > > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > > > at > > > > > > > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > > > at > > > > > > > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > > > at > > > > > > > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > > > at > > > > > > > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > > > at > > > > > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) > > > at > > > > > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) > > > at > > > > > > > > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) > > > at > > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) > > > at java.lang.Thread.run(Thread.java:619) > > > > > > > > > So , what is wrong? > > > > > > is there a work around > > > > > > thanks > > > > > > Joe > > > > > >
