2009-07-02 10 views
5

¿Alguien conoce una herramienta/script/programa/lo que sea para crear una instancia de objeto java a partir de un objeto binario java serializado?Instancia de objeto deserializado sin definición de clase

No tengo el archivo .class, así que no puedo (afaik) simplemente crear un ObjectInputStream y cargarlo desde allí.

Este objeto tiene el mecanismo de serialización predeterminado, y estoy tratando de solucionar un problema que tenemos.

¿Alguien?

+0

¿Cómo terminas con un objeto serializado que no tiene un archivo .class? – ykaganovich

+2

eeerhmmm ... Es una larga historia. Érase una vez un desarrollador de software ... ohh ... .minutos. – OscarRyz

+0

Ok, encontré los archivos .class, están dentro de .jar "archivos" (como se esperaba) que están dentro de un DB :) Estoy a punto de cambiar la pregunta. Obtener archivos de blob :) – OscarRyz

Respuesta

0

Creo que lo que se quiere lograr es muy similar a this post

+0

¿Uh? ... ¿Cuál es la respuesta? ¿Uso de serialización/deserialización de objetos? No tengo el archivo .class – OscarRyz

+0

La respuesta fue obtener el archivo .class de una URL. – Yishai

1

Hubo un post bastante detallada sobre el formato en JavaWorld recientemente ... Podría valer la pena leer.

Enlace: http://www.javaworld.com/community/node/2915

+0

Yeap, algo en esta línea. Sé que hay un par de herramientas como asm u otras herramientas de manipulación de códigos de bytes, pero nunca las he usado antes, así que no sé cuál es la mejor herramienta. – OscarRyz

0

Crear una clase con el nombre correcto y serialVersionUID. Implementar readObject. Use ObjectInputStream.readFields para obtener el ObjectInputStrem.GetFields.

+0

Tengo InvalidClassException. Supongo que necesito saber cuál es el serialVersionUID correcto. Excepción en el hilo "principal" java.io.InvalidClassException: com.o.a.I; el descriptor de enum tiene un ID de serialVersion distinto de cero: 12885773312 – OscarRyz

Cuestiones relacionadas