2013-12-04 3 views
0

Я разрабатываю приложение для Glassfish 4.0, в котором используется Джерси 2. Я хочу использовать Джексона в качестве поставщика JSON для Джерси.Могу ли я использовать Glassfish 4 с Jackson 2.x?

Я обновил версию на Джерси в Glassfish, что помогает с проблемами CDI.

В идеале, я хотел бы использовать более новую версию (quickxml) Jackson.

В настоящее время у меня есть приложение, настроенное на использование версии Jackson, предоставленной Glassfish (codehaus).

Итак, я знаю, как использовать Glassfish 4 с предоставленным Джерси и Джексоном. Я также знаю, как настроить последний Джерси, чтобы использовать последний Джексон в автономном приложении Джерси.

Однако я не могу развернуть и запустить приложение в Glassfish 4.0 с последней версией Джерси и Джексона. Я попробовал добавить зависимости maven, без успеха. Я подозреваю, что Glassfish каким-то образом использует свои собственные версии, которые затем конфликтуют с теми из maven.

Должно ли это работать? Я имею в виду, если приложение сможет предоставить свои собственные версии Джерси и Джексона и использовать Glassfish? Я спрашиваю, потому что я знаю некоторые ошибки в Glassfish 4, которые могут быть причиной моих проблем.

+0

См. Ответ, приведенный здесь [здесь] (http://stackoverflow.com/questions/20709827/force-glassfish-4-to-use-jackson-2-3) – Rick

ответ

0

В различных приложениях можно использовать различные основные версии Jackson; поэтому более старый код может использовать Jackson 1.x и более новый 2.x. Это потому, что они живут в разных пакетах Java и не конфликтуют.

Джерси (и JAX-RS в целом) имеют гибкий механизм расширения, поэтому можно использовать либо версию Джексона с обоими Джерси 1.x и 2.x. Но для этого вам обычно следует напрямую использовать провайдер Jackson JAX-RS, а не через механизмы, специфичные для Джерси. С Jackson 2 это означает, что вы получаете jar для https://github.com/FasterXML/jackson-jaxrs-providers, добавляя его в classpath и позволяя ему использовать автоматическую регистрацию. Никакой дополнительной конфигурации не требуется.

И наконец, я не думаю, что Glassfish 4 представляет проблемы.

Так что это должно быть вполне возможно. Но конфигурация была одной из сложных областей для Джерси, отчасти потому, что документация не заполнена местами; а также потому, что иногда объяснения не показывают самый простой способ добиться того, чего вы хотите.

+0

Когда я включаю зависимости Джерси (для 2.4. 1) через maven мое приложение не будет развертываться из-за некоторых проблем с CDI. Я могу опубликовать свой pom.xml, если кому-то это интересно, но, похоже, проблема возникает в стеклянной рыбке или сварке или cdi или где-то еще. – Rick

+0

Рик, такой же вопрос здесь; Вы разрешили это? Я полагаю, что корабли из морской рыбы с более старой версией Jackson и почему-то новые версии, добавленные к артефакту, игнорируются? –

Смежные вопросы