У меня есть трикотажный веб-сервис, работающий под управлением версии 1.17, и он поддерживает возврат ответов как через XML, так и через JSON через аннотацию @Produces. Я предполагаю, что он использует JAXB по умолчанию при возврате ответов JSON, но у меня нет возможности это подтвердить. На данный момент мои существующие клиенты также используют тот же сериализатор/десериализатор JAXB. Я хочу создать новый клиент, который использует Jackson, не затрагивая существующие клиенты.
Ответ JAXB JSON несовместим с Jackson for Maps. JSON для карты с использованием JAXB имеет вид
"mapName":{"entry":[{"key":"key1","value":"value1"},{"key":"key2","value":"value2"}]}
и Джексон не может разобрать это. Есть ли способ заставить Джексона проанализировать этот JSON?
Еще одна попытка: сменить Джерси на Джексона
Это не предпочтительный вариант, но я попытался установить для параметра «com.sun.jersey.api.json.POJOMappingFeature» значение true, чтобы разрешить ему использовать Jackson для сериализации/десериализации JSON, однако служба в конечном итоге возвращает 500 секунд в ответ без регистрации каких-либо исключений. . уровень регистратора log4j установлен на TRACE. Я включил ContainerRepsonseFilter для подтверждения 500-х в ответе, и, к моему удивлению, он регистрирует успешный ответ 2xx. Я предполагаю, что проблема возникает где-то дальше по стеку, но я не знаю, где.