В настоящее время мы используем XStream для кодирования входов/выходов наших веб-сервисов в XML. Однако мы рассматриваем возможность перехода на двоичный формат с генератором кода для нескольких языков (protobuf, Thrift, Hessian и т. Д.), Чтобы упростить и облегчить поддержку новых клиентов в ручном кодировании (также для лучшей поддержки форматов сообщений, которые включают двоичные данные) ,XStream <-> Альтернативные двоичные форматы (например, буферы протокола)
Однако большинство наших объектов на сервере являются POJO с XStream, обрабатывающие сериализацию посредством отражения и аннотаций, и большинство из этих библиотек предполагают, что они будут генерировать сами POJO. Я могу придумать несколько способов взаимодействия с альтернативной библиотекой:
Напишите маршалер XStream для целевого формата.
Написать собственный код для маршалирования POJO в/из классов, сгенерированных альтернативной библиотекой.
Подкласс созданных классов для реализации логики POJO. Может потребоваться переписывание. (Также я упомянул, что мы хотим использовать Terracotta?)
Используйте другую библиотеку, которая поддерживает как отражение (например, XStream), так и генерацию кода.
Однако я не уверен, какой serialization library был бы лучше всего подходит для вышеупомянутых техник.