HttpClientBuilder проблема: не удалось инициализировать класс sun.security.ssl.SSLContextImpl $ CustomizedTLSContext - PullRequest
0 голосов
/ 10 июня 2019

В моем коде Java ниже я случайно получаю следующую ошибку.

 final HttpClient client = HttpClientBuilder.create().build();
         final HttpGet request = new HttpGet(requestParameters);
         final HttpResponse response = client.execute(request);

Ошибка:

java.lang.NoClassDefFoundError: Could not initialize class sun.security.ssl.SSLContextImpl$CustomizedTLSContext
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:291)
    at java.base/java.security.Provider$Service.getImplClass(Provider.java:1848)
    at java.base/java.security.Provider$Service.newInstance(Provider.java:1824)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:164)
    at java.base/javax.net.ssl.SSLContext.getInstance(SSLContext.java:168)
    at org.apache.http.ssl.SSLContexts.createDefault(SSLContexts.java:51)
    at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:977)

Я не могу воспроизвести проблему, так как она случайная. Означает ли это, что рукопожатие ssl / tls не удалось?

Поможет ли реализация политики повторных попыток решить эту проблему?

  public DefaultHttpRequestRetryHandler() {
        this(3, false);
    }

https://jar -download.com / артефакты / org.apache.httpcomponents / HttpClient / 4.5.2 / исходный код / ​​орг / Apache / HTTP / осущ / клиент / DefaultHttpRequestRetryHandler.java

Ниже приведены библиотеки Java, которые я использую: enter image description here

ОБНОВЛЕНИЕ : Хотя я думал, что избавлюсь от этой проблемы, перейдя от HttpClientBuilder к java.net.HttpUrlConnection , к сожалению, я получить ту же ошибку:

java.lang.NoClassDefFoundError: Could not initialize class sun.security.ssl.SSLContextImpl$DefaultSSLContext
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:291)
    at java.base/java.security.Provider$Service.getImplClass(Provider.java:1848)
    at java.base/java.security.Provider$Service.newInstance(Provider.java:1824)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
    at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:164)
    at java.base/javax.net.ssl.SSLContext.getInstance(SSLContext.java:168)
    at java.base/javax.net.ssl.SSLContext.getDefault(SSLContext.java:99)
    at java.base/javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:123)
    at java.base/javax.net.ssl.HttpsURLConnection.getDefaultSSLSocketFactory(HttpsURLConnection.java:335)
    at java.base/javax.net.ssl.HttpsURLConnection.<init>(HttpsURLConnection.java:292)
    at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.<init>(HttpsURLConnectionImpl.java:95)
    at java.base/sun.net.www.protocol.https.Handler.openConnection(Handler.java:62)
    at java.base/sun.net.www.protocol.https.Handler.openConnection(Handler.java:57)
    at java.base/java.net.URL.openConnection(URL.java:1051)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...