Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ProtoStuff跨JDK1.6和JDK1.7对可丢弃文件进行序列化和反序列化_Protostuff - Fatal编程技术网

使用ProtoStuff跨JDK1.6和JDK1.7对可丢弃文件进行序列化和反序列化

使用ProtoStuff跨JDK1.6和JDK1.7对可丢弃文件进行序列化和反序列化,protostuff,Protostuff,我们有两个系统,一个运行JDK1.6,另一个运行JDK1.7。为了在两个节点之间进行通信,我们使用ProtoStuff序列化来转换二进制文件并将其传输到另一个节点,在该节点上,二进制文件再次被反序列化 JDK1.7添加了新字段“suppressedExceptions”,因此现在如果我们在一个节点中序列化JDK1.7中的Throwable,并将其传输到另一个节点,则它无法反序列化,反之亦然 由于两个节点使用不同的技术,因此不可能从JDK1.6迁移到JDK1.7,也不可能从JDK1.7迁移到JDK

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

JDK1.7添加了新字段“suppressedExceptions”,因此现在如果我们在一个节点中序列化JDK1.7中的Throwable,并将其传输到另一个节点,则它无法反序列化,反之亦然

由于两个节点使用不同的技术,因此不可能从JDK1.6迁移到JDK1.7,也不可能从JDK1.7迁移到JDK1.6

是否有解决此问题的方法,请提前回复

关于,,
如果将新字段添加到基类之一,则Pavan

Protostuff runtime不支持两个类版本之间的向后兼容性。这是由标记移位引起的-当您向基类添加新字段时,childred类中的所有标记号都移位。所以,总的来说,你的问题没有好的解决方案

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