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).