Grails 4: Micronaut не работает с NoClassDefFoundError: javax/annotation/PreDestroy

Я перенес приложение Grails 3.3.10 в Grails 4.0.0, переместившись с Java 8 на OpenJDK 11. После некоторой работы по запуску тестов и приложения в моей среде разработки (на компьютере с Windows 10) я упаковал свою исполняемую войну в докер adoptopenjdk/openjdk11:alpine, Точка входа докера просто запускает приложение:

java <some options> -jar /app/application.war

Однако докер при запуске выдает ошибку при инициализации Micronaut:

java.util.ServiceConfigurationError: Ошибка загрузки службы [org.grails.databinding.converters.$DefaultConvertersConfigurationDefinitionClass]: javax/annotation/PreDestroy

в io.micronaut.core.io.service.DefaultServiceDefinition.lambda $ load $ 0 (DefaultServiceDefinition.java:71)

...

Вызывается: java.lang.NoClassDefFoundError: javax / annotation / PreDestroy

...

Вызывается: java.lang.ClassNotFoundException: javax.annotation.PreDestroy

Я пытался добавить compile 'javax.annotation:javax.annotation-api:1.3.2' в моих зависимостях без успеха.

Чего не хватает для запуска моего приложения?

1 ответ

Решение

Java 11 больше не поставляется с некоторыми библиотеками javax.

Следуя инструкции https://blog.codefx.org/java/java-11-migration-guide/, эта проблема решена.

Другие вопросы по тегам