Я переношу приложение JAX-RS из WebSphere 8.0 в WebSphere Liberty 8.5.5.Как изменить версию Джексона в приложении JAX-RS (WebSphere Liberty)
В WebSphere 8.0 Джексон был предоставлен WebSphere. Я могу найти jackson-core-asl-1.9.12.jar
, jackson-jaxrs-1.9.12.jar
, jackson-mapper-asl-1.9.12.jar
и jackson-xc-1.9.12.jar
файлов в каталоге AppServer\plugins\
.
На новом сервере приложений (WebSphere Liberty) я получаю следующее исключение: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "myPropertyName"
. Я думаю, что это исключение происходит потому, что аннотация @JsonIgnoreProperties(ignoreUnknown = true)
на сериализованных классах не работает. Я предполагаю, что это происходит потому, что WebSphere Liberty 8.5.5 предоставляет более старую версию Jackson.
Я попытался развернуть версию Джексона, которая мне нужна с моим приложением, , но это не помогло (у меня все еще есть исключения). Как я могу заставить WebSphere Liberty использовать версию Джексона, которая мне нужна?
Спасибо, все работает после того, как я указал провайдера JAX-RS JSON явно и поместил в него 'objectMapper.configure (DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false)'. Я удалил '@JsonIgnoreProperties (ignoreUnknown = true)' аннотации. Мне не нужно было менять версию библиотеки. – Alexey
Отлично! Очень рад, что это работает для вас. – ebullient