• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

serialization problem

 
sam wang
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Dear friends,

I got a problem about java object serialization. the server resides in tomcat, sending the serialized object to the client which locates the same machine, using the same java version(1.5.02). the server side serialization code snippet is as following:

//writting the binary data to a file to compare with client side
try {
FileOutputStream fo = new FileOutputStream(
"/tmp/object.Server");
ObjectOutputStream so = new ObjectOutputStream(fo);
so.writeObject(objectxxx);
so.flush();
so.close();
System.out.println("successful writting OracleCachedRowSet into file /tmp/object.Server");
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}

I run the same code to serialize the same object through tomcat(as a servlet) and eclipse, but I got different file(different size), the file size generated by tomcat is bigger than the size generated by eclipse. the most important of all, I can't use eclipse to read the object serialized into the file by tomcat, because the serialVersionUID is different. I guess maybe the locale or encoding is different? but I can't find any place to specify or setting encoding or locale.

any hint will be greatly apprieciated!
Sam
 
Ulf Dittmer
Rancher
Posts: 42968
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Are you sure that the version of class "objectxxx" (and all classes it references directly or indirectly) is the same on both JVMs?
 
Purushoth Thambu
Ranch Hand
Posts: 425
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Neither Tomcat/Eclipse has anything to do with Serialization. If you are 100% confident about the content written by java code under Tomcat and Eclipse then you definitely need to check the version used by Eclipse and Tomcat. Printing out System.getProperty("java.version") and System.getProperty("java.vm.version") to confirm about the versions.

SerialVersionID cannot be different unless you have different versions. Search your classpath to make sure you don't have the 2 different classes.
[ October 20, 2006: Message edited by: Purushothaman Thambu ]
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic