Java 如何在Jersey客户端中获取默认超时

Java 如何在Jersey客户端中获取默认超时,java,jersey-client,Java,Jersey Client,我正在使用Jersey core客户端连接到外部服务。我想知道Jersey中的默认超时设置。有什么想法吗?我用的是泽西2.26 谢谢和问候 请注意,我不是问如何为Jersey客户端设置超时,这里已经有了很好的答案: 我只关心知道默认超时值。谢谢。根据泽西岛文件 默认情况下,没有定义超时,即客户端的读取和连接超时为无穷大 请参阅 如果您想设置超时,可以参考下面的Jersey文档片段 @GET public void asyncGetWithTimeout(@Suspended final Asyn

我正在使用Jersey core客户端连接到外部服务。我想知道Jersey中的默认超时设置。有什么想法吗?我用的是泽西2.26

谢谢和问候

请注意,我不是问如何为Jersey客户端设置超时,这里已经有了很好的答案:


我只关心知道默认超时值。谢谢。

根据泽西岛文件

默认情况下,没有定义超时,即客户端的读取和连接超时为无穷大

请参阅

如果您想设置超时,可以参考下面的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注意,正如我在上面所评论的,默认的连接超时取决于平台,而不是无限的。