Asynchronous Jersey异步客户端处理程序在服务器重新启动后从不超时

Asynchronous Jersey异步客户端处理程序在服务器重新启动后从不超时,asynchronous,callback,jersey,client,freeze,Asynchronous,Callback,Jersey,Client,Freeze,我有一个ReST服务,我正在用一个Jersey异步客户端连接。我使用InvocationCallback将响应作为回调处理。一切都很好,除非我在客户机服务的重载期间跳转服务器。经过几次反弹后,我发现jersey客户端在幕后为服务器永远不会响应的消息注册了内部回调处理程序(因为它已重新启动,并且丢失了任何未完成请求的迹象) 我本来希望Jersey(在内部)轮询其已注册的异步处理程序列表,查找“过时”的处理程序,并定期清理已注册调用回调处理程序的超时异常,但这些未应答的处理程序永远不会清理 我做错了

我有一个ReST服务,我正在用一个Jersey异步客户端连接。我使用InvocationCallback将响应作为回调处理。一切都很好,除非我在客户机服务的重载期间跳转服务器。经过几次反弹后,我发现jersey客户端在幕后为服务器永远不会响应的消息注册了内部回调处理程序(因为它已重新启动,并且丢失了任何未完成请求的迹象)

我本来希望Jersey(在内部)轮询其已注册的异步处理程序列表,查找“过时”的处理程序,并定期清理已注册调用回调处理程序的超时异常,但这些未应答的处理程序永远不会清理

我做错了什么?这一定是泽西岛的一个众所周知的问题

我正在像这样构建我的客户:

ClientBuilder builder = ClientBuilder.newBuilder();
this.client = builder
    .executorService(es)
    .register(JsonProcessingFeature.class)
    .register(LoggingFeature.class)
    .property(LoggingFeature.LOGGING_FEATURE_LOGGER_NAME_CLIENT, log.getName())
    .connectTimeout(TIMEOUT_MILLIS, TimeUnit.MILLISECONDS)
    .readTimeout(TIMEOUT_MILLIS, TimeUnit.MILLISECONDS)
    .withConfig(new ClientConfig().connectorProvider(new JdkConnectorProvider()))
    .build();