java.io.NotSerializableException:
anupama Feb 9, 2006 11:05 AMHi Folks,
I have the following POJO class which needs to be apectized and has to send over wire to client.
import java.io.Serializable; import java.util.ArrayList; /** * * @@org.jboss.cache.aop.AopMarker */ public class Answer implements Serializable{ private String itemCode; private String description; private boolean defaultItem; private ArrayList parentItemCodeList; private ArrayList amenitiesList; private boolean hasSuite; private boolean hasConcierge; private int maxGuest; public Answer() { amenitiesList = new ArrayList (); parentItemCodeList = new ArrayList(); } public ArrayList getAmenitiesList() { return amenitiesList; } public void setAmenitiesList(ArrayList amenitiesList) { this.amenitiesList = amenitiesList; } public void addAmenity (String amenity){ amenitiesList.add(amenity); } public boolean getDefaultItem() { return defaultItem; } public void setDefaultItem(boolean defaultItem) { this.defaultItem = defaultItem; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public boolean isHasConcierge() { return hasConcierge; } public void setHasConcierge(boolean hasConcierge) { this.hasConcierge = hasConcierge; } public boolean isHasSuite() { return hasSuite; } public void setHasSuite(boolean hasSuite) { this.hasSuite = hasSuite; } public String getItemCode() { return itemCode; } public void setItemCode(String itemCode) { this.itemCode = itemCode; } public int getMaxGuest() { return maxGuest; } public void setMaxGuest(int maxGuest) { this.maxGuest = maxGuest; } public ArrayList getParentItemCodeList() { return parentItemCodeList; } public void setParentItemCodeList(ArrayList parentItemCodeList) { this.parentItemCodeList = parentItemCodeList; } public void addParentItemCode(String parentItemCode){ parentItemCodeList.add(parentItemCode); } }
it's doing AOPC properly and even caching and retrieving it from JBoss TreeCacheAOP. it's displaying Cached contents at server properly but at client side it's giving
java.lang.reflect.UndeclaredThrowableException at $Proxy1.getAnswer(Unknown Source) at com.wdpro.commerce.wdw.be.client.delegate.WDWIBCAppDelegate.getAnswer(WDWIBCAppDelegate.java:211) at TestCache.main(TestCache.java:20) Caused by: java.io.NotSerializableException: org.jboss.cache.aop.collection.CachedListInterceptor at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278) at java.util.ArrayList.writeObject(ArrayList.java:529) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:809) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1296) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278) at java.rmi.MarshalledObject.<init>(MarshalledObject.java:92) at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:410) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:144) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:534) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133) at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Source) at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:119) at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:227) at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:167) at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46) at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55) at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:97) at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86) ... 3 more
when I did
Answer ans = delegate.getAnswer()
I don't know what I am missing here, can't cached classes accessed at client.
Please let me know ASAP.
Thanks alot Guys,
Anu