Java AWS的RequestHandler返回空指针

Java AWS的RequestHandler返回空指针,java,amazon-web-services,aws-lambda,Java,Amazon Web Services,Aws Lambda,我的问题发生在我运行它(在AWS lambda上运行函数)时,person输入没有从请求json中获取值,它为null,因此它崩溃(null指针异常)。你有什么建议吗 您是否确定正在传递json?你试过用一根绳子而不是一个人来做测试吗?老实说,我还没有用绳子做过测试。我怎样才能确定正在按您所说的那样传递?您可以尝试将处理程序中的输入从Person更改为String。我想知道这个问题是与POST主体的交付有关,还是与POST主体的反序列化有关,也许这个问题与POJO/JavaBean命名约定有关。

我的问题发生在我运行它(在AWS lambda上运行函数)时,person输入没有从请求json中获取值,它为null,因此它崩溃(null指针异常)。你有什么建议吗

您是否确定正在传递json?你试过用一根绳子而不是一个人来做测试吗?老实说,我还没有用绳子做过测试。我怎样才能确定正在按您所说的那样传递?您可以尝试将处理程序中的
输入从Person更改为String。我想知道这个问题是与POST主体的交付有关,还是与POST主体的反序列化有关,也许这个问题与POJO/JavaBean命名约定有关。使用getter方法getPersonID()尝试PersonID,而不是事件JSON中的PersonID。这是假设它允许ID,而不要求您调用它ID。@jarmod2您的想法是正确的,遵循命名约定,序列化立即发生,没有空指针。谢谢你。
public class LambdaFunctionHandler implements RequestHandler<Person, String> {

private static AmazonDynamoDB client;
private static Item item;

// TODO: implement your handler
@Override
public String handleRequest(Person input, Context context) {
    context.getLogger().log("Input: " + input.toString());

    try {
        //initialize the connection
        init();

        DynamoDB dynamoDB = new DynamoDB(client);

        Table table = dynamoDB.getTable("Person");

        item = table.getItem("PersonID", input.getPersonID());

    } catch (Exception e) {
        // TODO: handle exception
        System.out.println(e.getMessage());
    }

    return item.toJSON();
}
}
{
 "PersonID": 1
}