【发布时间】:2018-10-19 03:24:28
【问题描述】:
我正在尝试在 AWS Lambda 上运行 Spring Web 项目 (Java 8),该项目使用 Google Guice(V4.0) 来注入依赖项。
我可以使用IDE IntelliJ 运行,但是当我实现RequestHandler 时,它无法初始化 Google Guice 依赖项。下面是 Lambda 处理程序
public class CoreLambdaHandler implements RequestHandler<Map<String, String>, String> {
private final Injector injector;
public CoreLambdaHandler() {
injector = Guice.createInjector(newApplicationModule());
}
@Override
public String handleRequest(Map<String, String> input, Context context) {
return "SUCCESS";
}
这会导致以下错误:
com.google.inject.internal.MessageProcessor visit
INFO: An exception was caught and reported. Message:
java.lang.NullPointerException
1) No implementation for java.lang.Integer annotated with @com.google.inject.name.Named(value=crawler.max.depth) was bound.
while locating java.lang.Integer annotated with @com.google.inject.name.Named(value=crawler.max.depth)
2) No implementation for java.lang.Integer annotated with @com.google.inject.name.Named(value=crawler.max.pages) was bound.
while locating java.lang.Integer annotated with @com.google.inject.name.Named(value=crawler.max.pages)
注意 - 我正在使用 Gradle 2.2.1 并使用影子插件构建一个 fatJar 以上传到 AWS Lambda
Lambda 控制台上的配置 - S3 路径 和 Handler name 正确 - com.aws.lambda.CoreLambdaHandler::handleRequest
感谢任何建议或参考
【问题讨论】:
标签: java amazon-web-services aws-lambda