我在配置文件中设置了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调用中遗漏了什么吗?
答案 0 :(得分:0)
我能够使用以下方法获取特定的JSON响应:
response.readEntity(JSONObject.class)
或response.readEntity(String.class)