Can't access HTTP request body in java11-vert-x template.
Expected Behaviour
When building a function using the java11-vert-x template, i should be able to access the HTTP request body from the RoutingContext object.
Current Behaviour
Recovering body using Vertx API e.g routingContext.getBody() raises a NullPointerException because the routingContext object isn't populated with the HTTP request body.
Possible Solution
Adding a BodyHandler object to the Vertx router handlers will populate the RoutingContext and fix the issue.
Steps to Reproduce (for bugs)
link to a live example: https://github.com/p-fortier/openfaas-java11-showcase
- Create a function using
java11-vert-xtemplate - Access the body within the generated handler
src/main/java/com/openfaas/function/Handler.java. e.g usingSystem.out.println(routingContext.getBody()); - Observe the raised exception when invoking the function. HTTP 500 and function logs
3'. edit: no exception raised in this scenario, no http 500. logs inside showcase shows empty context
2021/04/06 08:21:48 stdout: null
Context
I was building an OpenFaaS workflow using faas-flow and java11-vert-x template.
My goal was to build a workflow processing data from function to function.
This issue prevented me from recovering the HTTP request body in any function.
Your Environment
Not relevant.
Hi, thanks for your interest in OpenFaaS.
Under "Steps to Reproduce (for bugs)", please could you create a Github repo that shows how to reproduce this issue?
Thanks
Hi @alexellis 👋
I edit the issue, adding a Github repo showcasing the issue I wanted to report with logs from my deployment. By doing so, I realised the poor quality of my first issue... Sorry about that.
The issue stated is wrong since RoutingContext.getBody() is @Nullable.
The correct statement would be:
routingContext.getBody()returnsnullin each scenario logs ->2021/04/06 08:21:48 stdout: null
Thanks for the quick reply !
No problem. That helps a lot. Can you see my comment on the PR please?