Java 从Eclipse调用AWS lambda:InvalidRequestContentException
我在这里遵循教程: 我右键单击编辑器,选择AWS Lambda->Run function on AWS Lambda,然后在输入框中,我尝试了以下操作,但没有一个有效Java 从Eclipse调用AWS lambda:InvalidRequestContentException,java,eclipse,amazon-web-services,aws-lambda,Java,Eclipse,Amazon Web Services,Aws Lambda,我在这里遵循教程: 我右键单击编辑器,选择AWS Lambda->Run function on AWS Lambda,然后在输入框中,我尝试了以下操作,但没有一个有效 test "test" {"test", "value"} 我得到了一个例外: ==================== INVOCATION ERROR ==================== com.amazonaws.services.lambda.model.InvalidRequestContentExceptio
test
"test"
{"test", "value"}
我得到了一个例外:
==================== INVOCATION ERROR ====================
com.amazonaws.services.lambda.model.InvalidRequestContentException: Could not parse request body into json: Invalid UTF-8 start byte 0x80
at [Source: [B@7c56c329; line: 1, column: 3] (Service: AWSLambda; Status Code: 400; Error Code: InvalidRequestContentException; Request ID: 9ecedb86-3310-11e8-9f00-4798fcb419ad)
有人能帮忙吗?我的输入有什么问题?是否存在其他错误,但错误消息未指出
如果我尝试{“key”:“value”}
,我得到了
An error occurred during JSON parsing: java.lang.RuntimeException
java.lang.RuntimeException: An error occurred during JSON parsing
Caused by: java.io.UncheckedIOException: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token
at [Source: lambdainternal.util.NativeMemoryAsInputStream@4501b7af; line: 1, column: 1]
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token
at [Source: lambdainternal.util.NativeMemoryAsInputStream@4501b7af; line: 1, column: 1]
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)
at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:857)
at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:62)
at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)
at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1511)
at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1102)
如果输入类型是字符串,则基本上无法使其工作。。。。。谢谢
它应该是一个json字符串,请尝试:
{"key": "value"}
不知道为什么,但它现在开始使用
“test”
。好吧,教程中有“AWS Lambda”,我看了一个视频也有“aString”,但这是一个很好的观点,我会尝试。另外,如果我们将一个字符串序列化为json字符串,它应该是{“string”}@JiechaoWang。我不确定要用什么来序列化,但是{“string”}
不是有效的json文本。如果tuturial/video要求您将json以外的内容作为输入,那么他们就错了。所以字符串在Java中是一个对象。如果将字符串对象序列化为json字符串,那么输出是什么?至少Gson给了我“aString”,尽管“aString”不是json格式的