当我通过java代码将对象推送到SQS中时,在SQS lambda中获取空对象。
当订单创建到SQS时,我正在推送订单号。
服务器日志打印以下内容: 2019-01-29 23:22:13 [threadPoolTaskExecutor-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。
最佳答案
您的 Order
类的结构和内容是什么?
orderNumber
属性可能无法映射到 Order
类中的方法或属性。您可能需要对 Order
类本身进行一些更改,例如实现 setter 或确保您拥有适当的构造函数。
关于java - SQS Java lambda 获取空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54428473/