Quarkus Apache Camel AWS Lambda CDI ProducerTemplate 结果 NullPointerException

Posted

技术标签:

【中文标题】Quarkus Apache Camel AWS Lambda CDI ProducerTemplate 结果 NullPointerException【英文标题】:Quarkus Apache Camel AWS Lambda CDI ProducerTemplate result NullPointerException 【发布时间】:2021-12-20 10:32:03 【问题描述】:

我正在尝试在我自己的代码Quarkus Camel AWS Lambda 中重现以下代码Deploying a Camel Route in AWS Lambda : A Camel Quarkus example,但是 ProducerTemplate 返回 NullPointerExcetion,如在此链接中看到的 BUG_CAMEL_QUARKUS_LAMBDA

    @Named("languageScoreLambda")
public class LanguageScoreLambda implements RequestHandler<Language, LanguageScoreDto> 

  @Inject
  ProducerTemplate template;

  @Override
  public LanguageScoreDto handleRequest(Language input, Context context) 
    System.out.println("#Template isNull ===> " + (null == template)); // true
    return new LanguageScoreDto("5", input.getLanguage());
  

【问题讨论】:

截图没有显示空指针异常。它只是显示模板为空。 正确,因为它只是一个示例,这是AWS Lambda组件屏幕的结果 【参考方案1】:

我发现了问题,因为我一直在使用 Terraform 为 AWS Lambda 函数提供处理程序必须是 io.quarkus.amazon.lambda.runtime.QuarkusStreamHandler::handleRequest 下面是原始代码片段

  resource "aws_lambda_function" "hello_lambda" 
  function_name    = var.AWS_LAMBDA_FUNCTION_NAME
  filename         = "$path.module/function.zip"
  role             = aws_iam_role.hello_lambda_role.arn
  depends_on       = [aws_cloudwatch_log_group.hello_lambda_logging]
  runtime          = "java11"
  handler          = io.quarkus.amazon.lambda.runtime.QuarkusStreamHandler::handleRequest
  timeout          = 10
  memory_size      = 256

【讨论】:

以上是关于Quarkus Apache Camel AWS Lambda CDI ProducerTemplate 结果 NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章

Camel AWS SNS例外

使用 Apache Camel Source 从 S3 到 Kafka

Apache Camel

[每日一学]apache camel|BDD方式开发apache camel|Groovy|Spock

apache camel 条件路由

DynamoDB + Quarkus - 奇数类型转换