我正在使用Jersey核心客户端连接到外部服务。我想知道泽西岛的默认超时设置。任何想法?我正在使用泽西岛2.26。
感谢和问候。
请注意,我并不是在问如何为Jersey客户端设置超时,该客户端已经在此处提供了很好的答案:How to set the connection and read timeout with Jersey 2.x?
我只担心知道默认超时值。谢谢。
答案 0 :(得分:3)
根据jersey api docs中的文档,默认情况下,客户端中的READ_TIMEOUT和CONNECT_TIMEOUT均为0(无穷大)。
答案 1 :(得分:0)
根据Jersey文档
默认情况下,没有定义超时,即客户端的读取和连接超时为无穷大。
请参阅https://jersey.github.io/documentation/latest/async.html#d0e9989
如果要设置超时,可以参考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();
}