java.io.InvalidClassException:oracle.jdbc.rowset.OracleCachedRowSet

时间:2010-11-22 03:56:59

标签: java oracle

我在JBuilder IDE中开发的java swing项目。现在我需要将项目转移到NetBeans。但是,当我这样做时,会抛出异常。

java.io.InvalidClassException: oracle.jdbc.rowset.OracleCachedRowSet; local class incompatible: stream classdesc serialVersionUID = 1184591038813385495, local class serialVersionUID = -6778266293933460977
        at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)

这是异常发生的地方

FileInputStream fileInputStream = new FileInputStream(filename);
      ObjectInputStream istream       = new  ObjectInputStream(fileInputStream);

      try{

        crset = (OracleCachedRowSet) istream.readObject();
}

但是如果在Jbuilder中正常工作。我为项目使用了以下罐子

ocrs12.zip
ojdbc14.jar.zip
ORADriver.jar
classes12.jar
commons-collections-3.2.jar
commons-pool-1.5.2.jar
jcommon-1.0.8.jar
jfreechart-1.0.4.jar
xerces.jar

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

当您尝试使用与序列化的类不同版本的对象反序列化对象时(即您加载了不同版本的oracle驱动程序),会引发错误。

知道OracleCachedRowSet被序列化的原因(以及在哪里)?这似乎不太可取。