Джерси 2.7 - установка обработчика повторных попыток

Я хотел бы установить обработчик повторных попыток для Jersey клиента, использующего ApacheConnector. Я хочу это сделать, потому что хочу повторить попытку по тайм-ауту (мой HAProxy переключит его на другой сервер). Я понятия не имею, как это сделать в Jersey 2.7.

Пример кода:

public static void Example() {

    ClientConfig clientConfig = new ClientConfig();
    clientConfig.connectorProvider(new ApacheConnectorProvider());
    clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER, new PoolingHttpClientConnectionManager());

    RequestConfig reqConfig = RequestConfig.custom().build(); 
    clientConfig.property(ApacheClientProperties.REQUEST_CONFIG, reqConfig);

    Client client = ClientBuilder.newClient(clientConfig);
    WebTarget apiTarget = client.target("http://127.0.0.1/rest");
    System.out.println(apiTarget.path(ApiConstant.PING)
            .path(ApiConstant.PING1)
            .request(MediaType.TEXT_PLAIN)
            .get(String.class));
}

Как, используя этот код, я могу настроить обработчик повторных попыток для повторной отправки запроса, если сервер отвечает с ошибкой? Является ли это возможным?


person Michał Kowalczyk    schedule 25.04.2014    source источник
comment
Я думаю, вам не повезло с этим? Это то, что мне нужно посмотреть на себя в какой-то момент. Я могу думать только о двух способах: реализовать ClientInterceptor для выполнения работы или каким-то образом подключиться к HttpClient и установить retryHandler, но я не думаю, что Джерси раскрывает HttpClientBuilder. Вернусь, как только что-нибудь придумаю.   -  person Will    schedule 30.04.2014