Java 如何在Jersey客户端中获取默认超时
我正在使用Jersey core客户端连接到外部服务。我想知道Jersey中的默认超时设置。有什么想法吗?我用的是泽西2.26 谢谢和问候 请注意,我不是问如何为Jersey客户端设置超时,这里已经有了很好的答案:Java 如何在Jersey客户端中获取默认超时,java,jersey-client,Java,Jersey Client,我正在使用Jersey core客户端连接到外部服务。我想知道Jersey中的默认超时设置。有什么想法吗?我用的是泽西2.26 谢谢和问候 请注意,我不是问如何为Jersey客户端设置超时,这里已经有了很好的答案: 我只关心知道默认超时值。谢谢。根据泽西岛文件 默认情况下,没有定义超时,即客户端的读取和连接超时为无穷大 请参阅 如果您想设置超时,可以参考下面的Jersey文档片段 @GET public void asyncGetWithTimeout(@Suspended final Asyn
我只关心知道默认超时值。谢谢。根据泽西岛文件 默认情况下,没有定义超时,即客户端的读取和连接超时为无穷大 请参阅 如果您想设置超时,可以参考下面的Jersey文档片段
@GET
public void asyncGetWithTimeout(@Suspended final AsyncResponse asyncResponse) {
asyncResponse.setTimeoutHandler(new TimeoutHandler() {
@Override
public void handleTimeout(AsyncResponse asyncResponse) {
asyncResponse.resume(Response.status(Response.Status.SERVICE_UNAVAILABLE)
.entity("Operation time out.").build());
}
});
asyncResponse.setTimeout(20, TimeUnit.SECONDS);
new Thread(new Runnable() {
@Override
public void run() {
String result = veryExpensiveOperation();
asyncResponse.resume(result);
}
private String veryExpensiveOperation() {
// ... very expensive operation that typically finishes within 20 seconds
}
}).start();
}
根据泽西文件 默认情况下,没有定义超时,即客户端的读取和连接超时为无穷大 请参阅 如果您想设置超时,可以参考下面的Jersey文档片段
@GET
public void asyncGetWithTimeout(@Suspended final AsyncResponse asyncResponse) {
asyncResponse.setTimeoutHandler(new TimeoutHandler() {
@Override
public void handleTimeout(AsyncResponse asyncResponse) {
asyncResponse.resume(Response.status(Response.Status.SERVICE_UNAVAILABLE)
.entity("Operation time out.").build());
}
});
asyncResponse.setTimeout(20, TimeUnit.SECONDS);
new Thread(new Runnable() {
@Override
public void run() {
String result = veryExpensiveOperation();
asyncResponse.resume(result);
}
private String veryExpensiveOperation() {
// ... very expensive operation that typically finishes within 20 seconds
}
}).start();
}
根据中的文档,客户端中的读取超时和连接超时默认值均为0(无穷大)。根据中的文档,客户端中的读取超时和连接超时默认值均为0(无穷大)。这可能有助于您复制TCP中的默认读取超时值为无穷大,默认的连接超时是平台的操作系统默认值,通常约为一分钟(API文档中经常错误地将其描述为“无限”:事实并非如此)。我希望Jersey和其他所有API也会这样做。这可能有助于您复制TCP中的默认读取超时值为无穷大,而默认连接超时值是平台的操作系统默认值,通常约为一分钟(API文档中经常错误地将其描述为“无限大”:事实并非如此)。我希望Jersey和其他API也能效仿。谢谢。这正是我所需要的。@BruceJia注意,正如我在上面所评论的,默认的连接超时取决于平台,而不是无限的。谢谢。这正是我所需要的。@BruceJia注意,正如我在上面所评论的,默认的连接超时取决于平台,而不是无限的。