Hallo!
Ich würde gerne ein Objekt folgender Klasse Customer (de-)serialisieren, geht aber nicht. Warum?
	
	
	
	
	
		
	
Die Exception:
	
	
	
	
	
		
	
Ich suche schon ne ganze Zeit nach einer Lösung und habe folgende Gründe für NICHT (de-)serialisierbare Klassen/Obejekte gefunden:
* The serial version of the class does not match that of the class descriptor read from the stream
* The class contains unknown datatypes
* The class does not have an accessible no-arg constructor
Auf meine Klasse trifft da aber keiner dieser Gründe zu. Oft wurde auch gesagt, es habe mit nicht kompatiblen java-versionen zu tun, das hat aber in den jeweiligen threads niemand bestätigt.
Weiß jemand weiter?
Danke.
			
			Ich würde gerne ein Objekt folgender Klasse Customer (de-)serialisieren, geht aber nicht. Warum?
		Code:
	
	@Entity
public class Customer implements Serializable
{
	private static final long serialVersionUID = 6963956891492146853L;
	private ArrayList<ProductRate> bookedRates;
	private long id;
	public Customer()
	{
		this.bookedRates = new ArrayList<ProductRate>();
	}
	@Id
	public long getId()
	{
		return id;
	}
	public void setId(long id)
	{
		this.id = id;
	}
	public void book(ProductRate productRate) throws Exception
	{
		if (!this.bookedRates.add(productRate))
		{
			throw new Exception("Unable to book product");
		}
	}
	public ArrayList<ProductRate> getBookedRates()
	{
		return this.bookedRates;
	}
	public void setBookedRates(ArrayList<ProductRate> rates)
	{
		if (rates instanceof ArrayList)
		{
			this.bookedRates = (ArrayList<ProductRate>) rates.clone();
		}
	}
}Die Exception:
		Code:
	
	java.lang.RuntimeException: java.io.InvalidClassException: de.overturn.domain.customer.Customer; de.overturn.domain.customer.Customer; class invalid for deserialization
	at org.jboss.aop.joinpoint.MethodInvocation.getArguments(MethodInvocation.java:314)
	at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:481)
	at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53)
	at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91)
	at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
	at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:908)
	at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:742)
	at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:695)
	at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:522)
	at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:230)
Caused by: java.io.InvalidClassException: de.overturn.domain.customer.Customer; de.overturn.domain.customer.Customer; class invalid for deserialization
	at java.io.ObjectStreamClass.checkDeserialize(ObjectStreamClass.java:713)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1733)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
	at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
	at java.rmi.MarshalledObject.get(MarshalledObject.java:142)
	at org.jboss.aop.joinpoint.MethodInvocation.getArguments(MethodInvocation.java:309)
	at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:481)
	at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53)
	at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91)
	at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
	at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:908)
	at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:742)
	at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:695)
	at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:522)
	at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:230)
	at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:206)
	at org.jboss.remoting.Client.invoke(Client.java:1708)
	at org.jboss.remoting.Client.invoke(Client.java:612)
	at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
	at $Proxy3.invoke(Unknown Source)
	at org.jboss.ejb3.proxy.handler.ProxyInvocationHandlerBase.invoke(ProxyInvocationHandlerBase.java:261)
	at org.jboss.ejb3.proxy.handler.session.SessionSpecProxyInvocationHandlerBase.invoke(SessionSpecProxyInvocationHandlerBase.java:101)
	at $Proxy2.createCustomer(Unknown Source)
	at de.overturn.client.AppClient.main(AppClient.java:29)
	at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:72)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
	at $Proxy3.invoke(Unknown Source)
	at org.jboss.ejb3.proxy.handler.ProxyInvocationHandlerBase.invoke(ProxyInvocationHandlerBase.java:261)
	at org.jboss.ejb3.proxy.handler.session.SessionSpecProxyInvocationHandlerBase.invoke(SessionSpecProxyInvocationHandlerBase.java:101)
	at $Proxy2.createCustomer(Unknown Source)
	at de.overturn.client.AppClient.main(AppClient.java:29)
Caused by: java.io.InvalidClassException: de.overturn.domain.customer.Customer; class invalid for deserialization
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:587)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
	at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
	at java.rmi.MarshalledObject.get(MarshalledObject.java:142)
	at org.jboss.aop.joinpoint.MethodInvocation.getArguments(MethodInvocation.java:309)
	at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:481)
	at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53)
	at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91)
	at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
	at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:908)
	at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:742)
	at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:695)
	at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:522)
	at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:230)Ich suche schon ne ganze Zeit nach einer Lösung und habe folgende Gründe für NICHT (de-)serialisierbare Klassen/Obejekte gefunden:
* The serial version of the class does not match that of the class descriptor read from the stream
* The class contains unknown datatypes
* The class does not have an accessible no-arg constructor
Auf meine Klasse trifft da aber keiner dieser Gründe zu. Oft wurde auch gesagt, es habe mit nicht kompatiblen java-versionen zu tun, das hat aber in den jeweiligen threads niemand bestätigt.
Weiß jemand weiter?
Danke.
 
				 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		