Re: Deserialization attempt freezes program execution
I have now been informed that the code I posted previously is not entirely
accurate. What's actually happening is that there is an interface
MyInterface which MyClass implements. An object of type MyClass is being
serialized on one machine and transmitted to another where MyClass is not
known explicitly. The hope was that the serialized object would contain
sufficient information so that referring to the deserialized object as a
MyInterface would be sufficient to allow the object to be deserialized on
the second machine.
Is this correct? Does the MyClass need to be on the class path of the
second machine in order for an object of type MyInterface to be deserialized
there?
If so, is there a way to dynamically instantiate the class object of MyClass
on the second machine so that it could "learn" about this class?
Revised code:
ByteArrayInputStream bais = new ByteArrayInputStream(bytes, 0,
bytes.length);
MyInterface mi = null;
try {
ObjectInputStream ois = new ObjectInputStream(bais);
System.out.println("Reading object...");
Object o = ois.readObject();
System.out.println("Object read, o = " + o + ".");
mi = (MyInterface)o;
}
catch (Exception cnfe) {
System.out.println("Exception!");
cnfe.printStackTrace();
}
--
And loving it,
-Q
_________________________________________________
Qu0llSixFour@gmail.com
(Replace the "SixFour" with numbers to email me)