Есть ли способ переопределить или обновить версию Джексона Джерси? - PullRequest
2 голосов
/ 12 июля 2010

Мы пытаемся использовать Jackson 1.5, чтобы воспользоваться некоторыми преимуществами полиморфной обработки, которую он предлагает, но похоже, что Джерси привез собственную устаревшую версию Jackson (1.1.1).При тестировании JSON-сериализации JSON мы получаем другие результаты, чем при ручной сериализации в модульных тестах.

{"id":"40","ticketProps":[{"id":"28","field":{"id":"28","name":"WXYZ","strict":"false","valueType":"STRING"},"value":"W"},{"id":"29","field":{"id":"29","name":"SEAT","strict":"false","valueType":"STRING"},"value":"4A"}]}

{"id":"40","ticketProps":[{"id":"28","field":{}},{"id":"29","field":{}}],"name":null}

К сожалению, использование Jackson 1.1.1 не вариант.Есть ли способ заставить Джерси использовать Джексон 1.5?Думал попытаться установить его в классе Джерси Конфиг или что-то в этом роде ...

Ответы [ 2 ]

1 голос
/ 13 июля 2010

Если maven POM для Джерси не позволяет вам отделить зависимость Джексона от зависимости Джерси, то вы можете получить отдельные JAR-файлы вручную, выгрузив JAR-файлы Jackson 1.5.x для 1.1.x один.

Обратите внимание, что нет никаких гарантий, что Джерси будет работать с более новой версией Джексона. API Джексона сильно изменился в релизах 1.1.

0 голосов
/ 13 июля 2010

Вы не дали много подробностей (особенно о вашей среде выполнения), поэтому я просто рассмотрю maven часть вопроса: объявите версию 1.5 Джексона в разделе dependencyManagement, чтобы вызвать конвергенцию в других зависимостях, имеющихДжексон как зависимость.

То, что это будет работать во время выполнения, оставлено читателю в качестве упражнения:)

Для записи вот что мы можем прочитать в V3.1JerseyOnePager:

В настоящее время Джерси использует Jackson 1.1 в GlassFish 3.0.Версия будет обновлена ​​в версии 3.1 до последней стабильной версии (в настоящее время 1.5.2).

...