当 max-jobs-per-context 值超过时,作业提交失败并出现一般 503 错误

Job submission fails with generic 503 error when max-jobs-per-context value exceeds

我在配置文件中设置了 context-per-jvm = true 和 max-jobs-per-context = 4。

我使用以下 curl 命令预先创建了上下文: curl -d "" 'http://jobserver:8090/contexts/test-context'

我正在使用以下 curl 命令提交作业: curl -d "" 'http://jobserver:8090/jobs?appName=test&classPath=com.xyz.Test&context=test-context'

使用上述命令提交 4 个作业后,第 5 个作业的提交给出以下响应:

{
  "status": "NO SLOTS AVAILABLE",
  "result": "Too many running jobs (4) for job context 'test-context'"
}

这是一个体面且有用的回复。

但是,当我使用 Jersey API 从我的 Java 程序提交作业时,第 5 个作业的作业提交失败并出现通用 503 异常,没有任何特定的错误消息。

这是代码片段:

public static void main(String[] args) {
        WebTarget resource = client.target("http://jobserver:8090/jobs?appName=test&classPath=com.xyz.Test&context=test-context");
        Response response = resource.request().post(Entity.json(""), Response.class);
        System.out.println("Response:" + response);
    }

输出: Response:InboundJaxrsResponse{context=ClientResponse{method=POST, uri=http://jobserver:8090/jobs?appName=test&classPath=com.xyz.Test&context=test-context, status=503, reason=Service Unavailable}} 这种不一致的原因是什么?我的 Jersey API 电话是不是遗漏了什么?

我能够使用以下方法获得特定的 JSON 响应:

response.readEntity(JSONObject.class)response.readEntity(String.class)