【发布时间】:2020-06-26 16:59:57
【问题描述】:
我有一个接受字符串作为输入参数的 lambda 函数。运行 lambda 函数时,出现以下错误:
Can not deserialize instance of java.lang.String out of START_OBJECT token\n
这也是我的代码所称的样子:
InvokeRequest request = new InvokeRequest();
final String payload = "";
request.withFunctionName(FUNCTION_NAME).withPayload((String) null);
InvokeResult invokeResult = lambdaClient.invoke(request);
Assert.assertEquals(new String (invokeResult.getPayload().array(), "UTF-8"), "Success");
这就是我的处理程序的样子:
public String handleRequest(String s, Context context) {}
现在字符串的内容无关紧要,它可以是 null 也可以是任何东西。我不使用输入。显而易见的解决方案是删除它,但由于我正在使用注释生成器,我不能这样做。我尝试了ByteBuffer 输入、字符串、空字符串、JSON 字符串{\"s\":\"s\"},但似乎没有任何效果。我相信我需要传入一个字符串(即没有 {})。但是由于我使用的是 InvokeRequest 我不相信我能做到这一点。任何建议将不胜感激。
【问题讨论】:
-
尝试使用此处提供的解决方案。希望它会帮助stackoverflow.com/questions/41616806/…
-
感谢您的链接!我实际上遵循了相同的教程,但它没有用。不过我很感激!
标签: json amazon-web-services aws-lambda