【发布时间】:2019-08-06 12:13:36
【问题描述】:
我将 Grails 3.3.10 应用程序迁移到 Grails 4.0.0,从 Java 8 迁移到 OpenJDK 11。经过一些工作以使测试和应用程序在我的开发环境(Windows 10 机器)上运行,我打包了我的可执行文件码头工人的战争adoptopenjdk/openjdk11:alpine。 docker 的入口点只是运行应用程序:
java <some options> -jar /app/application.war
Docker 在运行时会在初始化 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
我尝试在我的 gradle 依赖项中添加 compile 'javax.annotation:javax.annotation-api:1.3.2',但没有成功。
让我的应用程序运行缺少什么?
【问题讨论】:
-
“让我的应用程序运行缺少什么?” - 没有看到项目很难说。我无法重现该问题。