2015-04-25 106 views
0

我們有兩個系統:JDK 1.6和JDK 1.7。爲了在兩個節點之間進行通信,我們使用ProtoStuff序列化將二進制&傳輸轉換爲其中再次對二進制進行反序列化的其他節點。使用ProtoStuff對JDK 1.6和JDK 1.7進行可串行化和反序列化

JDK 1.7添加了新字段'suppressedExceptions',所以現在如果我們在一個節點中將JDK 1.7中的Throwable序列化並傳輸到另一個節點,則不能反序列化&。

由於兩個節點使用不同的技術,因此無法從JDK 1.6遷移到JDK 1.7 & JDK 1.7到JDK 1.6。

有沒有解決這個問題的方法,在此先感謝您的回覆。

與問候, 帕

回答

0

Protostuff-運行時不支持兩級版本之間的後向兼容性,如果新的字段被添加到基類中的一個。這是由tag轉換造成的 - 當您向基類添加新字段時,子類中的所有tag數字都會被移位。所以,一般來說,你的問題沒有好的解決方案。

但是,如果您將編碼切換到json,那麼問題應該消失。使用protostuff-json時,字段將使用它們的名稱(而不是標籤)進行存儲,因此在類層次中間添加新字段不應再成爲問題。

相關問題