Вопрос или проблема
Во время миграции, связанной с Jakarta.x, я заметил, что класс JacksonJaxbJsonProvider
был удален (по крайней мере, с версии 2.16.x и далее).
Это многоуровневый репозиторий – https://github.com/FasterXML/jackson-jakarta-rs-providers
И этот класс теперь отсутствует.
Кто-нибудь знает, какова лучшая альтернатива для этих классов? И извините еще раз, если я пропустил какую-либо очевидную заметку в разделах релиза.
Я снова пересмотрю заметки перед тем, как проверять эту тему на SO.
Этот класс, насколько я знаю, никогда не существовал в jackson-jakarta-rs-providers
(или на самом деле jackson-jakarta-rs-json-provider
) под этим названием, только в jackson-jaxrs-providers
(jackson-jaxrs-json-provider
).
Его заменой, когда была создана версия Jakarta EE, стало название com.fasterxml.jackson.jakarta.rs.json.JacksonXmlBindJsonProvider
(для сравнения, см. “старую” документацию javax JacksonJaxbJsonProvider
)
В дополнение к ответу, предоставленному @MarkRotteveel выше.
-
Посмотрите на прилагаемое сравнение между двумя файлами – они функционально идентичны.
-
Если вы используете базовые вещи,
JacksonJsonProvider
должен быть достаточным для вас.
Ответ или решение
Класс JacksonJaxbJsonProvider
, который вы упомянули, действительно был удалён в версиях Jackson 2.16.x и выше. Это изменение связано с переходом на проект jackson-jakarta-rs-providers
, который соответствует спецификациям Jakarta EE.
Ранее класс JacksonJaxbJsonProvider
был частью модуля jackson-jaxrs-providers
. При переходе на Jakarta EE был разработан новый класс, который является его заменой. Новая версия класса теперь называется com.fasterxml.jackson.jakarta.rs.json.JacksonXmlBindJsonProvider
. Вы можете ознакомиться с его документацией здесь.
Основные моменты, которые следует учитывать:
- Функциональная идентичность: Функционально новый класс
JacksonXmlBindJsonProvider
и старый классJacksonJaxbJsonProvider
идентичны, что означает, что вы можете просто заменить один класс на другой без необходимости изменения вашего кода. - Простые сценарии: Если вы используете более простые сценарии, вам также может подойти класс
JacksonJsonProvider
, который может быть более легковесным вариантом для обработки JSON без необходимости привязки к JAXB.
Если у вас возникнут дополнительные вопросы или вы будете нуждаться в более конкретной помощи по миграции, не стесняйтесь обращаться к документации или к сообществу, которое активно обсуждает эти изменения.