Skip to content

Conversation

@AlbertXingZhang
Copy link

@AlbertXingZhang AlbertXingZhang commented Mar 17, 2022

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.
image

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.
image

@AlbertXingZhang AlbertXingZhang changed the title set the lambda class loader as current thread's context class loader make RequestStreamHandler work with serverless offline Apr 20, 2022
tibersept added a commit to tibersept/serverless-toolkit that referenced this pull request Aug 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant