Настройка прокси не работает в Джерси ClientConfig - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь настроить прокси в своем коде Java с помощью клиента Джерси, но прокси не настроен.Я просмотрел документацию на Джерси и реализовал код описанным способом.Я новичок в Джерси, поэтому не знаю, где я ошибаюсь.

Ниже приведен код.

@Override
@CircuitBreaker(name = "documentServiceCreateDocument", ignore = { NullPointerException.class,
        ArrayIndexOutOfBoundsException.class })
public String createDocument(String name, DocumentType docType, List<SourceData> sourceDatas) {
    ClientConfig clientConfig = new ClientConfig().register(MultiPartFeature.class)
            .register(ClientTransactionIdFilter.class)
            .property(ClientProperties.READ_TIMEOUT, "30000")
            .property(ClientProperties.CONNECT_TIMEOUT, "30000")
            .property(ClientProperties.PROXY_URI, properties.getProxyUrl);

    Client client = ClientBuilder.newClient(clientConfig);

    Builder builder = resourceTarget.request().header("Authorization", ***);
    List<Cookie> iamCookies = ***

    Response response = null;

    try {
        response = builder.post(body);

    } catch (Exception e){
        if(response != null) {
            logger.info("Response code : " + response.getStatus());
            logger.info("Response : " + response.toString());
        }
        e.printStackTrace();
        throw new RuntimeException(e);
    }
    String docLocation = response.getLocation().toString();
    logger.debug("Created Document Service document with location=" + docLocation);

    return docLocation;
}

1 Ответ

0 голосов
/ 06 июня 2018

После долгого времени я наконец-то разобрался с исправлением.Нам нужно использовать ApacheConnectorProvider, чтобы прокси работал.

Добавьте ApacheConnectorProvider в ClientConfig, как показано ниже:

ClientConfig clientConfig = new ClientConfig().register(MultiPartFeature.class)
        .register(ClientTransactionIdFilter.class)
        .property(ClientProperties.READ_TIMEOUT, "30000")
        .property(ClientProperties.CONNECT_TIMEOUT, "30000")
        .connectorProvider(new ApacheConnectorProvider())
        .property(ClientProperties.PROXY_URI, properties.getProxyUrl);

Не забудьте добавить зависимость jersey-apache-connector в файл pom (если вы используете maven).Обратитесь к ссылке ниже для деталей зависимости jersey-apache-connector: https://mvnrepository.com/artifact/org.glassfish.jersey.connectors/jersey-apache-connector/2.6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...