Miro,

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",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-tp20883658p20884265.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]

Reply via email to