You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Michael Mok <mo...@hotmail.com> on 2001/04/13 17:42:06 UTC

Serialize object to form.. class mismatch?

Hi

Young Wayne posted an previous in regards to getting version mismatch error
when serializing class.

I encountered similar problem when serializing my object as well. The errors
are

java.io.InvalidClassException: java.lang.Integer; Local class not
compatible: stream classdesc serialVersionUID=1360826667802527544 local
class serialVersionUID=1360826667806852920
at java.io.ObjectStreamClass.validateLocalClass(ObjectStreamClass.java:523)
at java.io.ObjectStreamClass.setClass(ObjectStreamClass.java:567) at
java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:936)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:366) at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:236) at
java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1186) at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:386) at
java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2262) at
java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:519) at
java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1411) at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:386) at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:236) at
org.teatimej.timesheet.dao.Project.setSerializeOrg(Project.java:355)
at java.lang.reflect.Method.invoke(Native Method)
at
org.apache.struts.util.PropertyUtils.setSimpleProperty(PropertyUtils.java:82
5)
at
org.apache.struts.util.PropertyUtils.copyProperties(PropertyUtils.java:209)
at org.teatimej.timesheet.form.ProjectForm.setProject(ProjectForm.java:59)


setSerializeOrg code is

   byte buf[] = sOrg.getBytes();
   ByteArrayInputStream bais =
       new ByteArrayInputStream(buf);
   ObjectInputStream ois = new ObjectInputStream(bais);
   this._organisation = (Organisation)ois.readObject();
   ois.close();


getSerializeOrg code is

        ByteArrayOutputStream baos =
                new ByteArrayOutputStream(100);
        ObjectOutputStream oos = new ObjectOutputStream(baos);
        oos.writeObject(this._organisation);
        byte buf[] = baos.toByteArray();
        oos.close();
        return new String(buf);



Any idea or workaround?

TIA


Michael Mok

www.webappcabaret.com/teatimej