Micronaut 4.10.9: сборка собственного образа завершается с ошибкой NoClassDefFoundError в JacksonDatabindFeature после оJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Micronaut 4.10.9: сборка собственного образа завершается с ошибкой NoClassDefFoundError в JacksonDatabindFeature после о

Сообщение Anonymous »

Контекст

Я работаю над приложением Micronaut 4.10.9, используя Java 21 и GraalVM 21. По умолчанию платформа использует com.fasterxml.jackson версии 2.19.x.
Проблема

Наш инструмент анализа безопасности
сообщил об уязвимости безопасности в версии Jackson по умолчанию и рекомендовал перейти на 2.21.1. Однако после принудительного обновления моя сборка собственного образа GraalVM завершается неудачно.
Шаги по воспроизведению
  • Использование Micronaut 4.10.9.
  • Принудительное обновление версии Jackson с использованием спецификации Jackson в build.gradle:

    Код: Выделить всё

    implementation(platform("com.fasterxml.jackson:jackson-bom:2.21.1"))
  • Запустите команду сборки собственного образа (например, ./gradlew ownCompile)
Сообщение об ошибке

Сборка завершается сбоем на этапе создания собственного образа со следующей трассировкой:

Error: Feature определено io.micronaut.jackson.JacksonDatabindFeature, неожиданно произошел сбой с ошибкой java.lang.NoClassDefFoundError.
Сообщите об этой проблеме авторам io.micronaut.jackson.JacksonDatabindFeature.

Что я пробовал
  • Я подтвердил, что обновление версии работает нормально при работе на стандартной JVM (JIT). Проблема возникает только во время процесса сборки Native Image.
  • Я подозреваю двоичную несовместимость между io.micronaut.jackson.JacksonDatabindFeature (который предоставляет метаданные доступности GraalVM для Jackson) и более новыми классами Jackson 2.21.1.
  • Я проверил, что все модули Jackson согласованы с ту же версию (2.21.1) через спецификацию.
Вопрос

Известна ли проблема совместимости между Micronaut 4.10.x и Jackson 2.21.1 специально для собственных изображений? Должен ли я использовать другую версию функции Micronaut GraalVM или есть способ исключить проблемную функцию, сохранив при этом поддержку Jackson в собственном исполняемом файле?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»