У нас есть большой проект, который состоит из модулей JEE, клиентских приложений JAVA, приложений Android и других самодельных java-проектов.
Из-за разнообразия проектов мы решили сделать проекты java libs и проекты java entity, общие для JEE, клиентских приложений Java и приложений Android, с целью ограничения избыточности кода между проектами.
Вначале у нас были только Java-клиенты и веб-службы Restfull на стороне сервера JEE, которые обменивались данными с помощью JAXB XML Binding API.Поэтому было легко использовать аннотации JAXB для наших классов в проекте сущностей (который устанавливается как зависимость от проекта клиента Java и проектов JEE).Обе стороны могут легко кодировать и декодировать данные XML с одинаковыми аннотациями.
Теперь, когда у нас есть приложение для Android, я хотел использовать один и тот же способ обмена данными.Дело в том, что JAXB «обесценился» на Android.Итак, я обнаружил в libson Jackson, что есть параметр JaxbAnnotation
для получения данных, который связан с JAXB, но я не убежден в полной совместимости решения.
Я также пытался использовать привязку JSON, так как видел, что JSON-B будет стандартом в JavaEE 8, но, похоже, ему нужны классы JavaEE API, и я не думаю, что было бы хорошо добавить его в проект Android,
Итак, мой вопрос: какова лучшая практика для обмена данными между веб-службами JEE Restfull и приложением Android с использованием одной и той же зависимости сущности (и того же API синтаксического анализа) и ограничением аннотации привязки XML или JSON для объектов сущности?
Я надеюсь, что вы хорошо поймете проблему.
Спасибо.