目前,我尝试用Quarkus实现一个AWS Lambda函数。问题是我不能在处理程序类中使用cdi。例如,如果我想注入Greeter类(上面的示例),它总是null(依赖注入在这里对quarkus不起作用)。因此,我在AWS上得到一个NullPointer异常。
AWS-lambda-console上的NullPointerExceptionon:
{
"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-version:
(但我也在以前的版本中试用过)
lambda-handler的代码:
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 :)";
}
}
如果有人能帮我就好了?
对于那些也在为这样的问题苦苦挣扎的人:确保将处理程序(resource->project->Properties下的template.yml)设置为io.quarkus.amazon.lambda.runtime.quarkusStreamHandler::HandleRequest。别忘了你正在使用Quarkus,所以Quarkus的处理程序必须被使用。
这是我的代码中不起作用的一部分我是在使用python处理3的过程中这样做的
我的RestController类: 我的ExceptionHandler: 例外响应:
我正在寻找“对象或函数不允许在信号处理程序”的定义。在SEC里用的。N3797的3.6.3/4: 总的来说,我想为这个UB规则找到一个例子。
它有一个servlet和一个JAX-RS资源POJO,两者都运行良好。接下来,我在与servlet和JAX-RS POJO相同的包中创建了一个类: 当我访问POJO的rest路径时,我在Glassfish日志中得到消息:
代码: 知道是什么导致了这个问题吗。可能与VPC或安全组有关?并给出了思考和建议。谢了。