Настройка JSON маршаллинга с помощью GlassFish v4

У нас есть приложение JAX-RS, которое работает на Apache TomEE. Мы немного настроили поставщика Jettison по умолчанию, чтобы лучше соответствовать соглашениям JSON, используемым в веб-интерфейсе JavaScript. TomEE позволяет сделать это через файл resources.xml:

<resources>
    <Service id="jettison" class-name="org.apache.cxf.jaxrs.provider.json.JSONProvider">
        serializeAsArray = true
        dropRootElement = false
        arrayKeys = members,roles
        supportUnwrapped = true
        writeXsiType = false
    </Service>
</resources>

Теперь мы переходим на GlassFish v4.1, и мы замечаем, что вывод JSON отличается от того, что мы имели в TomEE - таким образом, полностью нарушая внешний интерфейс. Я ищу аналогичный механизм для настройки маршаллера JSON в GlassFish. На самом деле я уже немногозастрял с Джерси, МОКСИ, Джексоном, Джеттисоном. Как мы узнаем, какой JSON-провайдер на самом деле используется? Как мы выбираем один? Как мы можем настроить поведение?

Приложение является чистым JAX-RS и не использует напрямую какой-либо процессор JSON, вместо этого полагаясь на сортировку классов, аннотированных JAXB. Введение любых не-JavaEE-зависимостей крайне нежелательно, поскольку приложение предназначено для переноса между контейнерами (TomEE, GlassFish, однажды WildFly). Метод файла конфигурации, подобный TomEE, предпочтительнее; Программный способ также приемлем, но только если поддерживается переносимость.

Ответы на вопрос(0)

Ваш ответ на вопрос