Совместимость сериализации / десериализации .NET в Java - PullRequest
3 голосов
/ 20 августа 2009

Существуют ли какие-либо проблемы совместимости, которые необходимо учитывать при сортировке объекта в .NET, а затем при десериализации в Java?

Я сталкиваюсь с проблемами при десериализации объекта в Java, который был сериализован в .NET

Вот подробное описание проблемы:

На платформе .NET у меня есть cookie. 1. Cookie сериализуется 2. затем он шифруется с использованием алгоритма Triple DES. 3. Отправьте его в приложение Java

на платформе Java 1. Расшифруйте куки, используя Triple DES, который дает несколько байтов 2. Десериализуйте байты, используя что-то вроде

new ObjectInputStream (new ByteArrayInputStream (byte [] decryptedCookie)). ReadObject ();

Трассировка стека исключений, которую я получаю: java.io.StreamCorruptedException: неверный заголовок потока: 2F774555 в java.io.ObjectInputStream.readStreamHeader (Неизвестный источник) at java.io.ObjectInputStream. (Неизвестный источник)

Ответы [ 3 ]

5 голосов
/ 20 августа 2009

Сериализатор WOX обеспечивает совместимую сериализацию для .Net и Java.

1 голос
/ 20 августа 2009

Если вы сериализуете в xml, то у вас не должно возникнуть проблем с десериализацией в java, так как в худшем случае вы должны написать свой собственный фрагмент кода для восстановления объектов.

0 голосов
/ 20 августа 2009

Способ сериализации Java и .Net в двоичный файл отличается. Как один знает объекты другого, например, .Net будет иметь словари и Java Maps? (плюс бинарное представление строки может отличаться.

Вы должны использовать некоторый формат данных, который понимает и кодирует, чтобы сделать сопоставления объектов. Таким образом, приведенные выше ответы с упоминанием XML и WOX. Я также работал с внутренними компаниями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...