gpt4 book ai didi

java - { "errorType": "java.lang.ExceptionInInitializerError" } in AWS Lambda Function

转载 作者:行者123 更新时间:2023-12-02 00:32:55 24 4
gpt4 key购买 nike

我有一个在 SpringBoot 中开发的服务,并将部署在 AWS 中。在 LambdaHandler 中,给出了 Spring Applucation 类名称,以便在 AWS 环境中运行 SpringBoot 应用程序。

但是,当我尝试通过以 JSON 格式提供 i/p 作为测试事件进行测试并尝试在调用 Lambda 函数时将记录插入数据库时​​,我在 AWS Lambda 控制台中遇到以下错误

{
"errorMessage": "Error loading class com.example.lambda.LambdaHandler",
"errorType": "java.lang.ExceptionInInitializerError"
}

这是我的 LambdaHandler 类

public class LambdaHandler implements RequestHandler<AwsProxyRequest, AwsProxyResponse> {

private static SpringBootLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler;

static {
try {
handler = SpringBootLambdaContainerHandler.getAwsProxyHandler(SpringBootApplication.class);
} catch (ContainerInitializationException e) {
// if we fail here. We re-throw the exception to force another cold start
e.printStackTrace();
throw new RuntimeException("Could not initialize Spring Boot Application", e);
}
}

@Override
public AwsProxyResponse handleRequest(AwsProxyRequest awsProxyRequest, Context context) {
return handler.proxy(awsProxyRequest, context);
}
}

这是我的主要应用程序类

  public class SpringBootApplication {

public static void main(String[] args) {

SpringApplication.run(SpringBootApplication.class, args);
}

}

最佳答案

在静态上下文中引发异常会导致此错误。

将代码更改为以下内容,以便您可以了解为什么它首先抛出异常,然后解决该错误:

. . .
static {
try {
handler = SpringBootLambdaContainerHandler.getAwsProxyHandler(SpringBootApplication.class);
} catch (Exception e) {
// if we fail here. We re-throw the exception to force another cold start
e.printStackTrace();
throw new RuntimeException("Could not initialize Spring Boot Application", e);
}
}
. . .

静态加载东西时一定要小心。

关于java - { "errorType": "java.lang.ExceptionInInitializerError" } in AWS Lambda Function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57998799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com