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