AWS 无法将 START_OBJECT 反序列化为 java.lang.String 的实例。

6 浏览
0 Comments

AWS 无法将 START_OBJECT 反序列化为 java.lang.String 的实例。

我已经创建了一个Lambda函数,并希望通过API Gateway的帮助来通过URL访问它。

我已经完成了所有设置,还在API Gateway中创建了一个application/json的body映射模板,如下所示:

{

"input": "$input.params('input')",

}

然后,我触发了一个HTTP GET请求,它的样子是这样的:

https://dmquh95ckh.execute-api.eu-west-1.amazonaws.com/prod/OtoTestFunction?input=test

我的Java处理程序类是这样的:

public class LambdaFunctionHandler implements RequestHandler {
    @Override
    public String handleRequest(String input, Context context) {
        context.getLogger().log("Input: " + input);
        return "Test completed."+input;
    }
}

以下是完整的错误消息:

{

"errorMessage": "在JSON解析过程中发生错误",

"errorType": "java.lang.RuntimeException",

"stackTrace": [],

"cause": {

"errorMessage": "com.fasterxml.jackson.databind.JsonMappingException: 无法将START_OBJECT令牌反序列化为java.lang.String实例\n at [Source: lambdainternal.util.NativeMemoryAsInputStream@68c4039c; line: 1, column: 1]",

"errorType": "java.io.UncheckedIOException",

"stackTrace": [],

"cause": {

"errorMessage": "无法将START_OBJECT令牌反序列化为java.lang.String实例\n at [Source: lambdainternal.util.NativeMemoryAsInputStream@68c4039c; line: 1, column: 1]",

"errorType": "com.fasterxml.jackson.databind.JsonMappingException",

"stackTrace": [

"com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)",

"com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:835)",

"com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:59)",

"com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:12)",

"com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1441)",

"com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1047)"

]

}

}

}

0