Ayuda por favor: java.io.EOFException al intentar deserializar un objeto

jordi
17 de Marzo del 2006
Muy buenas,

Estoy montando una aplicaci贸n en JNLP y he pensado usar un sistema de cache de ojetos en el servidor y otro en el pc local donde correr谩 la aplicaci贸n. Estos objetos los empaqueto antes en el servidor, para generar mi propio repositorio. Para hacerlo tengo una peque帽a aplicaci贸n que hace:

ObjectOutputStream out = new ObjectOutputStream( new GZIPOutputStream( new FileOutputStream( path_al_archivo_resultado ) ) );
out.writeObject( objeto );
out.close();

Y dentro de la misma clase, me cercioro de que ha funcionado haciendo:

ObjectInputStream in = new ObjectInputStream( new GZIPInputStream( new FileInputStream( )));
Objeto tmp = (Objeto) in.readObject(path_al_archivo_resultado);

Y obtengo el objeto que puedo printar y ver su contenido correctamente.

El problema viene cuando en un servlet de la aplicaci贸n intento recuperar este mismo objeto mediante una URL:

ObjectInputStream in = new ObjectInputStream( new GZIPInputStream( ( new URL( base, nombre ) ).openStream() ) );

Al hacer: "obj = in.readObject();" obtengo una:

java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
...

Lo curioso es que no me lo hac铆a en la aplicaci贸n que empaquetaba el objeto, ni tampoco en este mismo servlet, al hacer "in.readObject().getClass()" para saber qu茅 objeto estoy recuperando... Entiendo que falla de deserializaci贸n... pero, 驴por qu茅?

Espero que me pod谩is ayudar o dar alguna indicaci贸n, porque llevo 2 d铆as con esto y no soy capaz de dar con el error...

Muchas gracias!


Jordi