I've heard of cases where client libraries are automatically changing
the HTTP method when provided with a body.
To figure out what exactly is received by Flink, enable TRACE logging,
try again and look for logging messages from
"org.apache.flink.runtime.rest.handler.router.RouterHandler"
On 07.03.2019 11:25, Stephen Connolly wrote:
In the documentation for the /jars/:jarid/plan endpoint
https://ci.apache.org/projects/flink/flink-docs-stable/monitoring/rest_api.html#jars-jarid-plan
It says:
> Program arguments can be passed both via the JSON request
(recommended) or query parameters.
Has anyone got sample code that sends the JSON request?
I have got the end-point working with query parameters, but I need to
support more than 2083 GET URL length limit.
When I have my code like this:
UriTemplate template = UriTemplate.fromTemplate(apiUrl)
.literal("/v1/jars")
.path("jarId")
.literal("/plan")
.query("entryClass", "programArg*", "parallelism")
.build()
.set("jarId", jarId);
if (requestBody.getEntryClass() != null) {
// TODO find a way to have this as entry-class even if the
spec says no
template.set("entryClass", requestBody.getEntryClass());
}
if (!requestBody.getProgramArgs().isEmpty()) {
template.set("programArg",
requestBody.getProgramArgs().toArray(new String[0]));
}
if (requestBody.getParallelism() > 0) {
template.set("parallelism", requestBody.getParallelism());
}
return get(
template,
null,
null,
JsonNode.class,
MEDIA_TYPE_JSON
);
Then I get the plan returned.
When I change to this
UriTemplate template = UriTemplate.fromTemplate(apiUrl)
.literal("/v1/jars")
.path("jarId")
.literal("/plan")
.build()
.set("jarId", jarId);
return get(
template,
requestBody,
MEDIA_TYPE_JSON,
JsonNode.class,
MEDIA_TYPE_JSON
);
I get a 404.
Basically, adding the request body makes the URL go 404... For fun I
tried having both query parameters and request body and that gets a
404 also.
So does anyone have a working example using the JSON request body (and
let's not get started on how a request body is a really bad idea for
GET requests)