Hibernate .par association serialization exception
greenhorn666 Oct 2, 2005 5:40 AMHi,
I'm on my first EJB3 project here, and I'm getting crazy at a java.io.InvalidClassException: org.hibernate.collection.AbstractPersistentCollection;
I'm unsuccessfully trying to remotely return a Customer with proper initialized associations to the client (currently a JUnit test). Two things bother me here:
- First: while I have declared the PhoneNumber association as follow:
<list name="phoneNumbers" table="phone_numbers" cascade="save-update" lazy="false" fetch="join" access="field">
But it just seems to be ignored and I get a "no session" exception, so I decided to go for a
Hibernate.initialize(customer.getPhoneNumbers());
in my stateless session bean for the collection
- Second: this is where everything breaks down to a
java.lang.reflect.UndeclaredThrowableException at $Proxy0.getCustomerById(Unknown Source) at com.j2sense.business.customers.tests.TestCustomerService.testPersistence(TestCustomerService.java:54) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:31) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:86) Caused by: java.rmi.ConnectException: Failed to communicate. Problem during marshalling/unmarshalling; nested exception is: java.io.InvalidClassException: org.hibernate.collection.AbstractPersistentCollection; local class incompatible: stream classdesc serialVersionUID = 7602608801868099635, local class serialVersionUID = 7663409046372276524 at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:266) at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:117) at org.jboss.remoting.Client.invoke(Client.java:201) at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:41) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88) at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:46) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88) at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:40) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88) at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:41) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88) at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:88) ... 25 more Caused by: java.io.InvalidClassException: org.hibernate.collection.AbstractPersistentCollection; local class incompatible: stream classdesc serialVersionUID = 7602608801868099635, local class serialVersionUID = 7663409046372276524 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:519) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339) at org.jboss.aop.joinpoint.InvocationResponse.readExternal(InvocationResponse.java:107) at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1711) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339) at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:72) at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:244) ... 36 more Process finished with exit code 255
Has anyone a clue on what I'm doing wrong?
Thanks a lot,
Alex