HTTP-клиент Java - нет такой ошибки поля

Я пытаюсь использовать Java-библиотеку Digital Ocean и при попытке установить соединение с:

CloseableHttpClient httpClient = HttpClients.createDefault();

client = new DigitalOceanClient("v2", token, httpClient);

Проблема заключается в CloseableHttpClient httpClient объект. Библиотека использует httpcore версии 4.4.1 и httpclient версии 4.5. Это дает мне java.lang.NoSuchFieldError.

Вот мой журнал:

Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:955)
at org.apache.http.impl.client.HttpClients.createDefault(HttpClients.java:58)
at main.java.servers.DigitalOceanServer.setup(DigitalOceanServer.java:28)

Я нашел мало информации и документации по NoSuchFieldError, поэтому я предполагаю, что это связано с версией httpcore и / или httpclient, которая вызывает эту ошибку.

1 ответ

Переменная поля INSTANCE был введен в AllowAllHostnameVerifier.java начиная с версии Apache httpclient 4.4.

Если обе новые версии SSLConnectionSocketFactory и старая версия AllowAllHostnameVerifier используется, то java.lang.NoSuchFieldError: INSTANCE брошен

Одна из возможных причин - две версии Apache httpclient jar находятся в каталоге вашей библиотеки.

Другие вопросы по тегам