Les*_*Les 3 java graalvm quarkus
我正在尝试在 MacOS 上为 AWS Lambda 函数构建本机映像。该应用程序在 IDE 中编译并运行得很好,但当我尝试本机映像构建时遇到以下问题:
mvn clean install -Dnative -Dquarkus.native.container-build=true
mvn clean install -Pnative -Dquarkus.native.container-build=true
Run Code Online (Sandbox Code Playgroud)
在我的 pom.xml 文件中使用以下内容,构建失败
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-amazon-lambda</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
错误:4 种方法中不支持的功能详细消息:错误:在图像堆中检测到 Random/SplittableRandom 类的实例。在图像生成过程中创建的实例已缓存种子值,并且行为不符合预期。要查看该对象是如何实例化的,请使用 --trace-object-instantiation=java.util.Random。该对象可能是由类初始值设定项创建的,并且可以从静态字段访问。您可以使用选项 --initialize-at-run-time= 在图像运行时请求类初始化。或者您可以编写自己的初始化方法并从主入口点显式调用它们。跟踪:通过读取常量 com.amazonaws.retry.PredefinedBackoffStrategies$EqualJitterBackoffStrategy@a7c6c06 字段达到对象 com.amazonaws.retry.PredefinedBackoffStrategies$EqualJitterBackoffStrategy.random 通过读取常量 com 的字段 com.amazonaws.retry.PredefinedBackoffStrategies$SDKDefaultBackoffStrategy.equalJitterBackoffStrategy 达到对象通过扫描方法 com.amazonaws.retry.PredefaultBackoffStrategies$SDKDefaultBackoffStrategy@6f61d2d9 到达 .amazonaws.retry.PredefinedRetryPolicies.getDefaultBackoffStrategy(PredefinedRetryPolicies.java:110)
如果我将 pom 文件更改为以下内容
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-amazon-lambda-archetype</artifactId>
<version>2.4.2.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
构建成功且没有错误,但例如 function.zip 未在 /target 目录中创建。
[/target目录的内容]
[测试环境]
即使启用了调试功能,如何解决这个问题对我来说也没有意义。
莱斯
小智 6
这意味着,如果您在代码中使用 Random/SplittableRandom,这将在构建时初始化,从而出现此错误。
如上所述,当您尝试在静态块中初始化这些类时,就会出现此问题,例如:
public class RandomWrapper {
public static final Random random;
static {
random = new Random();
}
}
Run Code Online (Sandbox Code Playgroud)
由于您的错误而失败。但是,正如异常告诉您的那样,您可以使用--initialize-at-run-time=<class-name>标志指定应在运行时初始化哪些类。在 Quarkus 中,这可以通过在您的 中指定以下配置来完成application.properties:
quarkus.native.additional-build-args=--initialize-at-run-time=org.acme.RandomWrapper
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3657 次 |
| 最近记录: |