首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ProtoStuff跨JDK1.6和JDK1.7序列化和反序列化Throwable

使用ProtoStuff跨JDK1.6和JDK1.7序列化和反序列化Throwable
EN

Stack Overflow用户
提问于 2015-04-25 17:16:47
回答 1查看 138关注 0票数 0

我们有两个系统,一个运行JDK1.6,另一个运行JDK1.7。为了在两个节点之间通信,我们使用ProtoStuff序列化来转换二进制文件并将其传输到其他节点,在那里二进制文件再次被反序列化。

JDK 1.7添加了新的字段'suppressedExceptions',所以现在如果我们在一个节点中序列化JDK 1.7中的Throwable,并将其传输到另一个节点,则它不能反序列化,反之亦然。

因为两个节点使用不同的技术,所以不可能从JDK 1.6迁移到JDK 1.7 & JDK 1.7迁移到JDK 1.6。

有没有解决这个问题的办法,谢谢提前回复。

说到这里,帕万

EN

回答 1

Stack Overflow用户

发布于 2015-05-31 01:24:46

如果将新字段添加到一个基类中,则运行时不支持两个类版本之间的向后兼容性。这是由tag shift引起的-当您向基类添加新字段时,子类中的所有tag数字都会移位。所以,一般来说,你的问题没有很好的解决方案。

但如果您将编码转换为json,那么问题应该会消失。使用protostuff-json,字段是使用它们的名称(而不是标签)存储的,因此在类层次结构中间添加新字段应该不再是问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29863285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档