java - SQS Java lambda 获取空对象

标签 java aws-lambda amazon-sqs

当我通过java代码将对象推送到SQS中时,在SQS lambda中获取空对象。

当订单创建到SQS时,我正在推送订单号。

服务器日志打印以下内容: 2019-01-29 23:22:13 [threadPoolTask​​Executor-1] 调试 c.a.s.sqs.MessageMD5ChecksumHandler - 消息正文:{"orderNumber":"201901292322090"}

但是当我把它拉过 lambda 时。我的订单号为空 输入:AWS lambda 代码中的 Order [orderNumber=null](对象的 tostring)。

我不明白 ordernumber 为何未正确翻译。

SQS推送代码:

SendMessageRequest send_msg_request = .... .withMessageBody(objectMapper.writeValueAsString(order)) ...

AWS lambda:

公共(public)类 BookingSQSHandler 实现 RequestHandler< Order , String > {

public String handleRequest(final Order order, final Context context) {
    context.getLogger().log("Input: " + order);
   // send email and return

}

在aws lambda函数中获取空顺序nnumber。

来自 SQS 的轮询消息,那里很好,但不确定 Lambda 发生了什么。 enter image description here

最佳答案

您的 Order 类的结构和内容是什么?

orderNumber 属性可能无法映射到 Order 类中的方法或属性。您可能需要对 Order 类本身进行一些更改,例如实现 setter 或确保您拥有适当的构造函数。

关于java - SQS Java lambda 获取空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54428473/

相关文章:

java - 查询 AD 以获得无限结果

java - SpringMVC 与 FreeMarker 集成

java - 模拟静态无效方法并改变其行为

amazon-web-services - AWS Lambda 作为社交媒体帖子调度程序?每个预定事件触发器具有唯一数据的单一功能?

docker - 如何访问触发部署为 Docker 镜像的 Lambda 的 SQS 事件?

amazon-web-services - 在 golang 中订阅 SNS 主题和/或 SQS 队列?

java - 正则表达式不起作用,应该如何制定?

amazon-web-services - 通过 dynamo db 中的多个属性查询

Django - S3 - SQS 交付而不是检索

node.js - sqs.recieveMessage 即使消息在队列中也没有收到