is ReassignGrantsOfficerPage Serializable? Do you want it to be serialised in the page store?
Yes ReassignGrantsOfficerPage is Serializable because all wicket components are serializable, yes. ReassignGrantsOfficerDTO represents the user entered form values and no lookup values so I dont want to use detachable model , I am just wrapping my form model with additonal meta information needed by my service layer,so please tell me will there be any problem with cglib proxy serialization ? like can we have cglib generated proxies in wicket pages ? jWeekend wrote: > > Miro, > > [Edited ... wrapped myProxyModelInstance in a CompoundPropertyModel (typo > fixed below) so it works in the same way as you probably intended.] > > Your use of the ProxyFactory looks fine (although you could also do the > Spring configuration in your application context and use @SpringBean to > inject your proxy in a Wicket-safe way). > > Anyway ... is ReassignGrantsOfficerPage Serializable? Do you want it to be > serialised in the page store? > > Also, since CompoundPropertyModel is an IChainingModel, you can try try > something like: > > class MyProxyModel extends LoadableDetachableModel{ > protected Object load(){ > return getProxy(); > } > } > > ... and ... > > public ReassignGrantsOfficerForm() { > super("reassignGrantsOfficerForm", new > CompoundPropertyModel(myProxyModelInstance)); > ... > } > > so your CompoundPropertyModel is not holding on to an instance of your > proxy (which, incidentally, is fixed when your form's constructor is run - > ie it is not dynamic/evaluated per render). > > I'd be interested to know if that's what you needed as the code provided > may not tell your whole story. > > Regards - Cemal > http://www.jWeekend.co.uk http://jWeekend.co.uk > > > > miro wrote: >> >> I am creating a spring proxy for my model before attaching it to the >> form and i get notserializable exception >> >> here is the code >> protected Object getproxy(){ >> ProxyFactory factory = new ProxyFactory(new >> ReassignGrantsOfficerDTO()); >> factory.addAdvisor(new WorkflowMetaDataAdvisor()); >> factory.setProxyTargetClass(true); >> Advised advised=(Advised)factory.getProxy(); >> advised.setExposeProxy(true); >> System.out.println(advised instanceof WorkflowMetaData ); >> System.out.println(advised instanceof ReassignGrantsOfficerDTO ); >> return advised; >> } >> private class ReassignGrantsOfficerForm extends Form{ >> >> public ReassignGrantsOfficerForm() { >> super("reassignGrantsOfficerForm", new >> CompoundPropertyModel(getproxy())); >> >> >> here the exception >> >> - Error serializing object class >> gov.hhs.acf.web.pages.auditprog.ReassignGrantsOfficerPage [object=[Page >> class = gov.hhs.acf.web.pages.auditprog.ReassignGrantsOfficerPage, id = >> 3, version = 0]] >> org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: >> Unable to serialize class: >> gov.hhs.acf.dto.ReassignGrantsOfficerDTO$$EnhancerByCGLIB$$4657904b >> Field hierarchy is: >> 3 [class=gov.hhs.acf.web.pages.auditprog.ReassignGrantsOfficerPage, >> path=3] >> private java.lang.Object org.apache.wicket.MarkupContainer.children >> [class=[Ljava.lang.Object;] >> java.lang.Object org.apache.wicket.Component.data[2] >> [class=org.apache.wicket.markup.html.WebMarkupContainer, >> path=3:reassignGrantsOfficerContainer] >> private java.lang.Object >> org.apache.wicket.MarkupContainer.children [class=[Ljava.lang.Object;] >> private java.lang.Object >> org.apache.wicket.MarkupContainer.children[0] >> [class=gov.hhs.acf.web.pages.auditprog.ReassignGrantsOfficerPage$ReassignGrantsOfficerForm, >> path=3:reassignGrantsOfficerContainer:reassignGrantsOfficerForm] >> java.lang.Object org.apache.wicket.Component.data >> [class=org.apache.wicket.model.CompoundPropertyModel] >> private java.lang.Object >> org.apache.wicket.model.CompoundPropertyModel.target >> [class=gov.hhs.acf.dto.ReassignGrantsOfficerDTO$$EnhancerByCGLIB$$4657904b] >> <----- field that is not serializable >> at >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:342) >> at >> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:610) >> at >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:533) >> at >> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:610) >> at >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:533) >> at >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:388) >> at >> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:610) >> at >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:533) >> at >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:388) >> at >> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:610) >> at >> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:533) >> at >> org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(SerializableChecker.java:678) >> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322) >> at >> org.apache.wicket.util.io.IObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:125) >> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322) >> at >> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1091) >> at >> org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:197) >> at >> org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(DiskPageStore.java:811) >> at >> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put(SecondLevelCacheSessionStore.java:332) >> at org.apache.wicket.Session.requestDetached(Session.java:1370) >> at org.apache.wicket.RequestCycle.detach(RequestCycle.java:1085) >> at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1372) >> at org.apache.wicket.RequestCycle.request(RequestCycle.java:493) >> at >> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:355) >> at >> org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:124) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >> at >> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1124) >> at >> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264) >> at >> org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229) >> at >> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) >> at >> org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148) >> at >> org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) >> at >> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) >> at >> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) >> at >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361) >> at >> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) >> at >> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) >> at >> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) >> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) >> at >> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) >> at >> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) >> at >> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) >> at org.mortbay.jetty.Server.handle(Server.java:324) >> at >> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) >> at >> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864) >> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:533) >> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:207) >> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403) >> at >> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) >> at >> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:499) >> Caused by: java.io.NotSerializableException: >> gov.hhs.acf.dto.ReassignGrantsOfficerDTO$$EnhancerByCGLIB$$4657904b >> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156) >> at >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509) >> at >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474) >> at >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) >> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) >> at >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509) >> at >> java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416) >> at org.apache.wicket.Component.writeObject(Component.java:4216) >> at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:597) >> at >> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945) >> at >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461) >> at >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) >> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) >> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338) >> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146) >> at >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509) >> at >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474) >> at >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) >> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) >> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338) >> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146) >> at >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509) >> at >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474) >> at >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) >> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) >> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) >> at >> org.apache.wicket.util.io.IObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:117) >> ... 40 more >> >> >> please help me resolve this ? >> > > -- View this message in context: http://www.nabble.com/spring-proxy---for-my-model-causes-notSerializable-exception-tp20883658p20896847.html Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]