Weblogic 12.2.1.4.0 использует Jackson Fasterxml вместо Codehaus Jackson
Наши приложения будут развернуты на серверах Weblogic версии 12.2.1.4.0. Мы полностью удалили использование codehaus jackson из нашего кода и хотим вместо этого использовать jackson fastxml в версии 2.13.2. Во время теста мы столкнулись с некоторыми проблемами.
Похоже, что Джерси случайным образом переключается между codehaus jackson (который все еще существует в библиотеках веб-логики) и библиотеками fastxml, которые мы развертываем вместе с нашими приложениями.
Чтобы решить проблему, мы безуспешно добавили это в файл weblogic.xml приложения:
<container-descriptor>
<prefer-application-packages>
<package-name>com.fasterxml.jackson.*</package-name>
</prefer-application-packages>
</container-descriptor>
При каждом развертывании мы видим разные результаты. Мы протестировали это, добавив компонент с LocalDate в ответ службы отдыха.
Иногда мы видим
{"year":2023,"month":"MARCH","dayOfMonth":9,"monthValue":3,"era":"CE","dayOfWeek":"ЧЕТВЕРГ","dayOfYear":68," jumpYear":false,"chronology":{"id":"ISO","calendarType":"iso8601"}}}
и иногда мы видим
{"localDate":"2023-03-09"}
в результате. С помощью модульных тестов мы проверили выходные данные codehaus/fasterxml ObjectMapper при преобразовании в текст, поэтому мы предполагаем, что он случайным образом переключается между версией codehaus и fastxml.
Что мы развертываем вместе с приложением:
- Джексон-привязка данных
- Джексон-тип данных-jsr310
- Джексон-ядро
- Джексон-аннотации
- Джексон-jaxrs-json-провайдер
Мы отключаем Moxy, добавляя в приложение следующие свойства:
props.put("jersey.config.server.disableMoxyJson", Boolean.TRUE);
Кроме того, для JSR310 мы добавляем ContextResolver, который регистрирует JavaTimeModule с помощью Fastxml ObjectMapper.
В файле web.xml приложения мы дополнительно устанавливаем поставщика джерси, используя следующий параметр контекста:
<context-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider</param-value>
</context-param>
Не могли бы вы сообщить мне, если что-то не так с этой конфигурацией? На самом деле мы хотим, чтобы Джерси всегда использовал новую реализацию Fasterxml вместо старой версии codehaus.