从inputstream反序列化对象时如何解决有关InvalidClassException的问题?

时间:2011-06-23 09:26:55

标签: java mysql james

我使用james2.3.2作为我的邮件服务器,后端是mysql 5.5。 我有一个例外如下: 23/06/11 16:39:49 DEBUG mailstore:异常读取属性Mail1308818378708-0-to-163.com in spool

java.io.InvalidClassException: [Ljava.lang.StackTraceElement;; enum descriptor has non-zero serialVersionUID: 163864874655243298
    at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:620)
    at java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:789)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1534)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
    at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1591)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1910)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1834)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
    at java.util.HashMap.readObject(HashMap.java:1067)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:592)
    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1812)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
    at org.apache.james.mailrepository.JDBCMailRepository.retrieve(JDBCMailRepository.java:846)
    at org.apache.james.mailrepository.JDBCSpoolRepository.accept(JDBCSpoolRepository.java:203)
    at org.apache.james.mailrepository.JDBCSpoolRepository.accept(JDBCSpoolRepository.java:126)
    at org.apache.james.mailrepository.MailStoreSpoolRepository.accept(MailStoreSpoolRepository.java:105)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:592)
    at org.apache.avalon.phoenix.components.application.BlockInvocationHandler.invoke(BlockInvocationHandler.java:134)
    at $Proxy5.accept(Unknown Source)
    at org.apache.james.transport.JamesSpoolManager.run(JamesSpoolManager.java:299)
    at java.lang.Thread.run(Thread.java:595)

如何解决这个问题? 谢谢!

1 个答案:

答案 0 :(得分:0)

我花了3个小时测试不同的数据库,例如mysql 5.0和oracle。它在oracle上工作得很好但在mysql上没有。这似乎是mysql的问题,而不是james。