You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Joe Fawzy <jo...@gmail.com> on 2011/08/01 02:08:40 UTC

serialization problem with spring

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

Re: serialization problem with spring

Posted by Bruno Borges <br...@gmail.com>.
What version of Wicket are you using?

On older versions you must declare your field as transient.

Newer versions don't required this anymore.

*Bruno Borges*
www.brunoborges.com.br
+55 21 76727099



On Sun, Jul 31, 2011 at 9:08 PM, Joe Fawzy <jo...@gmail.com> 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
>

Re: serialization problem with spring

Posted by Dan Retzlaff <dr...@gmail.com>.
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 <jo...@gmail.com> 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 <dr...@gmail.com> 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 <jo...@gmail.com> 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
> > >
> >
>

Re: serialization problem with spring

Posted by Martin Grigorov <mg...@apache.org>.
My application uses wicket-spring and I tested kryo-serializer with it
while developing it. No problems at all with serializing JDK based
proxies or CGLIB based ones.
We don't use Spring Data-JPA nor any other kind of JDBC based backend...

On Mon, Aug 1, 2011 at 8:41 AM, Joe Fawzy <jo...@gmail.com> wrote:
> Hi
>
> actually for testing , i tried using the new kryo-serializer from wicket
> stuff
> IT DOES NOT WORK, actually it has many more errors than the default one,
> actuallly it cannot serialize a JdkDynamicProxy which is the basis for
> injection
> If someone have a solution or workaround , please help
> Thanks
> Joe
>
> On Mon, Aug 1, 2011 at 8:10 AM, Joe Fawzy <jo...@gmail.com> 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 <dr...@gmail.com> 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 <jo...@gmail.com> 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
>>> >
>>>
>>
>>
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: serialization problem with spring

Posted by Joe Fawzy <jo...@gmail.com>.
Hi

actually for testing , i tried using the new kryo-serializer from wicket
stuff
IT DOES NOT WORK, actually it has many more errors than the default one,
actuallly it cannot serialize a JdkDynamicProxy which is the basis for
injection
If someone have a solution or workaround , please help
Thanks
Joe

On Mon, Aug 1, 2011 at 8:10 AM, Joe Fawzy <jo...@gmail.com> 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 <dr...@gmail.com> 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 <jo...@gmail.com> 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
>> >
>>
>
>

Re: serialization problem with spring

Posted by Joe Fawzy <jo...@gmail.com>.
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 <dr...@gmail.com> 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 <jo...@gmail.com> 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
> >
>

Re: serialization problem with spring

Posted by Dan Retzlaff <dr...@gmail.com>.
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 <jo...@gmail.com> 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
>