Sto cercando di serializzare un oggetto. Esso però ha referenze con la classe java.io.FileReader. Allora ho creato una nuova classe FileReaderMio.java così composta


codice:
import java.io.*;
import java.lang.Object.*;

public class FileReaderMio extends FileReader implements Serializable
{
	public FileReaderMio(File file) throws FileNotFoundException {
			super(file);		
	}
		
	public FileReaderMio(FileDescriptor fd) throws FileNotFoundException {
			super(fd);
	}

	public FileReaderMio(String fileName) throws FileNotFoundException {
			super(fileName);
	}
}

compilo senza errori, ma l'esecuzione mi dà:
codice:
java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
	java.io.InvalidClassException: FileReaderMio; no valid constructor
	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:157)
	at FPV_Stub.ottieniAnimazione(Unknown Source)
	at Client.main(Client.java:72)
Caused by: java.io.InvalidClassException: FileReaderMio; no valid constructor
	at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:428)
	at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:268)
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:504)
	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 java.awt.Component.readObject(Component.java:7482)
	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:585)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:919)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1813)
	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 sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:290)
	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:139)
	... 2 more
Normal Termination
Output completed (25 sec consumed).