Java AWS的RequestHandler返回空指针
我的问题发生在我运行它(在AWS lambda上运行函数)时,person输入没有从请求json中获取值,它为null,因此它崩溃(null指针异常)。你有什么建议吗 您是否确定正在传递json?你试过用一根绳子而不是一个人来做测试吗?老实说,我还没有用绳子做过测试。我怎样才能确定正在按您所说的那样传递?您可以尝试将处理程序中的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命名约定有关。
输入从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
}