aws / aws/serverless-java-container

Cannot deserialize value of type `java.lang.String` from Object value

Đang mở
#846 3 bình luận 0 reaction 1 người được giao Được @mbfreder nhận Xem trên GitHub
Ngôn ngữ chính
Java
Star
1.6k
Fork
574
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

*To help us debug your issue fill in the basic information below using the options provided*

*Serverless Java Container version*: `2.0.1`

*Implementations:* `Spring Boot`

*Framework version:* `SpringBoot 3.2.4`

*Frontend service:* `REST API`

*Deployment method:* `Serverless Framework`

## Scenario
*Describe what you are trying to accomplish*

Hello I am creating a lambda function for my service. when I try to call my post API with the json body from lambda test console it is not able to deserialize it into the object which is defined in my code

## Expected behavior
*Describe how you would expect the application to behave*
When I pass the body as json input it should get deserialized and consumed in my spring boot application

## Actual behavior
*Describe what you are seeing instead*
It is throwing `java.lang.String` from Object value

## Steps to reproduce
*Provide code samples we can use to reproduce the issue as part of our integration tests. If there is a public repository for the misbehaving application link to it here

Below is the test input given
```
{
"resource": "/{proxy+}",
"path": "/api/v1/inference",
"body": {
"model":"sketch",
"sketch":{
"params": {
"seed": 12345,
"max_seq_length": 512,
"temperature": 1.0,
"top_k": 1.0,
"top_p": 0.5
},
"sketch": {
"version": "4.0.0",
"metadata": {
"parent_project": "simple_11f5627d",
"document_name": "Untitled",
"component_name": "Untitled",
"component_hierarchy": []
},
"name": "Test1",
"type": "Sketch"
}
}
},
"headers": {
"Authorization": "Bearer "
},
"httpMethod": "POST",
"requestContext": {

}
}
```

`StreamLambdaHandler`
```
public class StreamLambdaHandler implements RequestStreamHandler {
private static final Logger logger = LoggerFactory.getLogger(StreamLambdaHandler.class);

private static final SpringBootLambdaContainerHandler handler;
static {
try {
logger.info("Initializing SpringBootLambdaContainerHandler"+AwsProxyRequest.class);
handler = SpringBootLambdaContainerHandler.getAwsProxyHandler(ServiceApplication.class);
} catch (ContainerInitializationException e) {
e.printStackTrace();
throw new RuntimeException("Could not initialize Spring Boot application", e);
}
}

@Override
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context)
throws IOException {
logger.info("Handling request"+inputStream.toString());
handler.proxyStream(inputStream, outputStream, context);
}
}
```
Rest Mapping
```
@PostMapping("/inference")
public ServiceResponse modelInference(@RequestBody ServiceRequest serviceRequest, @RequestHeader Map headers) {
......
```

## Full log output
*Paste the full log output from the Lambda function's CloudWatch logs*

Below is the stack trace
```
2024-04-20T09:41:05.847+05:30 at com.amazonaws.services.lambda.runtime.api.client.AWSLambda.startRuntime(AWSLambda.java:197) ~[aws-lambda-java-runtime-interface-client-2.4.2-linux-x86_64.jar:2.4.2]
2024-04-20T09:41:05.847+05:30
at com.amazonaws.services.lambda.runtime.api.client.AWSLambda.main(AWSLambda.java:187) ~[aws-lambda-java-runtime-interface-client-2.4.2-linux-x86_64.jar:2.4.2]

at com.amazonaws.services.lambda.runtime.api.client.AWSLambda.main(AWSLambda.java:187) ~[aws-lambda-java-runtime-interface-client-2.4.2-linux-x86_64.jar:2.4.2]
2024-04-20T09:41:05.848+05:30
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Object value (token `JsonToken.START_OBJECT`)

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.lang.String` from Object value (token `JsonToken.START_OBJECT`)
2024-04-20T09:41:05.848+05:30 at [Source: (ByteArrayInputStream); line: 1, column: 59] (through reference chain: com.amazonaws.serverless.proxy.model.AwsProxyRequest["body"])
2024-04-20T09:41:05.848+05:30
at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)

at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)
2024-04-20T09:41:05.848+05:30 at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1752)
2024-04-20T09:41:05.848+05:30 at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1526)
2024-04-20T09:41:05.848+05:30 at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1431)
2024-04-20T09:41:05.848+05:30 at com.fasterxml.jackson.databind.DeserializationContext.extractScalarFromObject(DeserializationContext.java:943)
2024-04-20T09:41:05.848+05:30 at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseString(StdDeserializer.java:1424)
2024-04-20T09:41:05.848+05:30 at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:48)
2024-04-20T09:41:05.848+05:30 at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)
2024-04-20T09:41:05.848+05:30 at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
2024-04-20T09:41:05.848+05:30 at com.fasterxml.jackson.module.afterburner.deser.SettableStringMethodProperty.deserializeAndSet(SettableStringMethodProperty.java:41)
2024-04-20T09:41:05.848+05:30 at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:278)
2024-04-20T09:41:05.848+05:30 at com.fasterxml.jackson.module.afterburner.deser.SuperSonicBeanDeserializer.deserialize(SuperSonicBeanDeserializer.java:155)
2024-04-20T09:41:05.848+05:30 at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)
2024-04-20T09:41:05.848+05:30 at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:2105)
2024-04-20T09:41:05.849+05:30 at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1481)
2024-04-20T09:41:05.849+05:30 at com.amazonaws.serverless.proxy.internal.LambdaContainerHandler.proxyStream(LambdaContainerHandler.java:257)
2024-04-20T09:41:05.849+05:30 at com..StreamLambdaHandler.handleRequest(StreamLambdaHandler.java:36)
```

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.