目前,我尝试使用quarkus实现AWS Lambda 函数。问题是我不能在我的处理程序类中使用 cdi。例如,如果我想注入 Greeter 类(上面的示例),它始终为空(依赖注入在 quarkus 中不起作用)。因此,我在 AWS 上得到了 NullPointer 异常。
AWS-Lambda-Console 上的 NullPointerException:
{
"errorMessage": "java.lang.NullPointerException",
"errorType": "java.lang.NullPointerException",
"stackTrace": [
"com.aws.vehicles.constructibility.boundary.ConstructibilityLambdaHandler.handleRequest(ConstructibilityLambdaHandler.java:24)",
"sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)",
"sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
"java.lang.reflect.Method.invoke(Method.java:498)"
]
}
我使用以下 quarkus 版本:( <quarkus.version>0.16.1</quarkus.version>
但我也尝试过使用以前的版本)
lambda 处理程序的代码:
public class MyLambdaHandler implements RequestHandler<SimpleRequest, String> {
private static final Logger LOGGER = Logger.getLogger(MyLambdaHandler.class.getName());
@Inject
Greeter greeter;
@Override
public String handleRequest(SimpleRequest simpleRequest, Context context) {
return greeter.sayGoodMorning();
}
}
greeter-class 是一个非常简单的类,使用 @ApplicationScoped 注释:
@ApplicationScoped
public class Greeter {
public String sayGoodMorning(){
return "good morning, hackers :)";
}
}
如果有人可以我会很好吗?