2

我正在尝试将应用程序从 Java 6 升级到 Java 7,并且在 Java 6 下运行应用程序时遇到了一个新异常。

这是堆栈跟踪的第一部分:

java.lang.ClassCastException: java.lang.String cannot be cast to org.jboss.serial.finalcontainers.IntegerContainer
    at org.jboss.serial.objectmetamodel.DataContainer$DataContainerInput.readInt(DataContainer.java:1044)
    at org.jboss.serial.persister.RegularObjectPersister.readSlotWithFields(RegularObjectPersister.java:310)
    at org.jboss.serial.persister.RegularObjectPersister.defaultRead(RegularObjectPersister.java:273)
    at org.jboss.serial.persister.RegularObjectPersister.readData(RegularObjectPersister.java:241)
    at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.readObjectDescriptionFromStreaming(ObjectDescriptorFactory.java:412)
    at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.objectFromDescription(ObjectDescriptorFactory.java:82)
    at org.jboss.serial.objectmetamodel.DataContainer$DataContainerInput.readObject(DataContainer.java:845)
    at org.jboss.serial.persister.RegularObjectPersister.readSlotWithFields(RegularObjectPersister.java:353)
    at org.jboss.serial.persister.RegulrObjectPersister.defaultRead(RegularObjectPersister.java:273)
    at org.jboss.serial.persister.RegularObjectPersister.readData(RegularObjectPersister.java:241)
    at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.readObjectDescriptionFromStreaming(ObjectDescriptorFactory.java:412)
    at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.objectFromDescription(ObjectDescriptorFactory.java:82)
    at org.jboss.serial.objectmetamodel.DataContainer$DataContainerInput.readObject(DataContainer.java:845)
    at org.jboss.serial.persister.ObjectInputStreamProxy.readObjectOverride(ObjectInputStreamProxy.java:68)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:364)
    at java.util.ArrayList.readObject(ArrayList.java:733)
    at sun.reflect.GeneratedMethodAccessor352.invoke(Unknown Source)

我发现了这个 JBoss 错误,据说已修复... https://issues.jboss.org/browse/JBSER-128

但它在(1.0.6.FINAL)中修复的版本尚未发布: https ://issues.jboss.org/browse/JBSER

有没有人遇到过可以提出解决方法的问题?

该应用程序在 JBoss 6.0.0 中运行。

PS 我知道 JBoss 6 已经过了 EOL 并且没有使用 Java 7 进行测试。

4

2 回答 2

2

好吧,您可以从 SVN 存储库中的标签自己构建版本。或者,如果您真的信任(或想做一个快速的实验)下载我构建的二进制文件(在这里,不会保证他们会保持在线)。

只需替换 JBoss 发行版中所有出现的 jar,不要忘记使用系统属性启用修复

-Dorg.jboss.serial.sync_binary_formats=true

正如这里强调的那样 https://issues.jboss.org/browse/JBSER-128?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

无论如何,这对我来说至少对 Vectors 有效(还有其他潜在问题,但无法传输 CCHashMaps 我会幸存下来;))。

于 2013-07-30T15:48:09.090 回答
1

我找到了解决我的问题的解决方法。由于Java 7改变了Vector的序列化行为,我改成了ArrayList(没有改变),问题已经解决。

希望这可以帮助那些在同样问题上苦苦挣扎的人。

于 2013-07-11T13:44:08.543 回答