Re: serialization problem with spring
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 joewic...@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 joewic...@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 dretzl...@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 joewic...@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
Re: serialization problem with spring
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 joewic...@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 dretzl...@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 joewic...@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
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
Re: serialization problem with spring
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 joewic...@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
Re: serialization problem with spring
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 joewic...@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
Re: serialization problem with spring
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 dretzl...@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 joewic...@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
Re: serialization problem with spring
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 joewic...@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 dretzl...@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 joewic...@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