Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon Java SDK-调用Lambda函数_Java_Json_Lambda_Aws Lambda - Fatal编程技术网

Amazon Java SDK-调用Lambda函数

Amazon Java SDK-调用Lambda函数,java,json,lambda,aws-lambda,Java,Json,Lambda,Aws Lambda,当我使用JavaSDK使用json数据调用lambda函数时,遇到了一个小问题 这是我的密码 我的Pojo课程 public class MyVO implements Serializable { /** * */ private static final long serialVersionUID = 3425814577032276812L; @JsonProperty("object_id") private Long

当我使用JavaSDK使用json数据调用lambda函数时,遇到了一个小问题

这是我的密码

我的Pojo课程

    public class MyVO implements Serializable {


    /**
     * 
     */
    private static final long serialVersionUID = 3425814577032276812L;

    @JsonProperty("object_id")
    private Long objectId;
    @JsonProperty("object_name")
    private String objectName;

    ...
    ...
    ...

}
调用Lambda函数的代码

        InvokeRequest invokeRequest = new InvokeRequest().withFunctionName(functionName).withPayload(jsonToSend);

    InvokeResult invokeResult = null;
    try {
        invokeResult = awsLambdaAsyncClient.invoke(invokeRequest);
    } catch (Exception e) {
        ...
        ...
    }
Amazon Lambda-andler方法

    public LambdaResponseVO handleRequest(final MyVO input, final Context lambdaContext) {
    LOG.info("Entered handleRequest - input:{}", input);        

}       
当我传入以下Json时,处理程序中的我的对象打印为null

{"object_id":299,"object_name":"Example Schedule"}  
然而,当我传入以下json时,对象被完美地设置

{"objectId":299,"objectName":"Example Schedule"}
Lambda处理程序基于字段名而不是jackson@JsonProperty注释解析json

我是否需要强制lambda代码使用jackson注释来解析json

谢谢
达米恩

我以前也有过这个问题。在Lambda中,Jackson解析器似乎被忽略Jackson特定注释的内容覆盖。我唯一能解决这个问题的方法就是转到Gson。你在哪里实现了json?是在调用lambda函数时发生的吗?或者在处理程序本身中使用?在我的处理程序中,我收到了一个自定义对象。我也想重新命名字段,但从未想出一个方法。所以我接受了Lambda给我的东西以及Gson使用的任何其他JSON处理。我承认我当时有时间上的压力,所以一直坚持下去。这是有道理的——谢谢你的评论。你使用过框架还是纯Java?不,我的lambda非常简单——主要是作为触发其他东西的前门。例如,我将响应IOT事件并将其保存到DynamoDB中。其他的是由时间驱动的,例如,执行一些非常简单的数据库维护。