Search before asking
Motivation
When sending invalid JSON to the pulsar-functions-worker API the response from the server looks like this:
{"servlet":"org.glassfish.jersey.servlet.ServletContainer-53f0d09c",
"message":"Bad Request",
"url":"/admin/v3/sinks/public/default/SinkTest",
"status":"400"}
The problem here is that there is no descriptive error message that shows the user that the sent JSON is either broken or could not be mapped correctly.
To reproduce the issue, start Pulsar in standalone mode and send an invalid sinkConfig json to the sink creation endpoint:
curl -X "POST" "http://localhost:8080/admin/v3/sinks/public/default/SinkTest" \
-H "Accept: application/json" \
-H 'Content-Type: multipart/form-data; charset=utf-8; boundary=__X_PAW_BOUNDARY__' \
-F "sinkConfig={\"xyz\"};type=application/json" -vvv
Solution
The solution is to override the default ExceptionMapper from Jersey.
Unfortunately,this seems to be a rather difficult problem, as we also include jersey-media-multipart and jersey-media-json-jackson:
https://stackoverflow.com/a/30371823
Alternatives
No response
Anything else?
No response
Are you willing to submit a PR?
Search before asking
Motivation
When sending invalid JSON to the
pulsar-functions-workerAPI the response from the server looks like this:The problem here is that there is no descriptive error message that shows the user that the sent JSON is either broken or could not be mapped correctly.
To reproduce the issue, start Pulsar in standalone mode and send an invalid
sinkConfigjson to the sink creation endpoint:Solution
The solution is to override the default
ExceptionMapperfrom Jersey.Unfortunately,this seems to be a rather difficult problem, as we also include
jersey-media-multipartandjersey-media-json-jackson:https://stackoverflow.com/a/30371823
Alternatives
No response
Anything else?
No response
Are you willing to submit a PR?