make RequestStreamHandler work with serverless offline #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The java runner in serverless-offline sends the requested data in the following format:
https://github.com/dherault/serverless-offline/blob/2c7e01b15bd8e020ff253692be12140ac3ed7aee/src/lambda/handler-runner/java-runner/JavaRunner.js#L63
This pr will make RequestStreamHandler also accept this format of data.
We also met a problem when we tried to use serverless offline to test an AWS lambda function written in Java with Spring Cloud Function framework.

But the same function works properly when we tried to invoke it using "serverless invoke local". So we took a look at both source codes. We found the serverless project had this line for reflecting the class from the jar file.
https://github.com/serverless/serverless/blob/bf79934e9b43a0b2e8613ee29f9430fa22c41481/lib/plugins/aws/invoke-local/runtime-wrappers/java/src/main/java/com/serverless/InvokeBridge.java#L67
After we added this line into java-invoke-local, the problem is resolved.
