Получение java.net.ConnectException при подключении Elasticsearch из Java - PullRequest
0 голосов
/ 16 ноября 2018

Я использую следующий код для подключения Elasticsearch из Java с использованием jks и базовой аутентификации. Но я получаю javax.net.ssl.SSLHandshakeException: общая проблема SSLEngine в конце при выполнении поиска.

final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
            credentialsProvider.setCredentials(AuthScope.ANY,
                    new UsernamePasswordCredentials(esConfig.getEsUserName(), esConfig.getEsPassword()));

            InputStream actualPath = this.getClass().getClassLoader().getResourceAsStream(esConfig.getJksFileName());

KeyStore truststore = KeyStore.getInstance("JKS");
truststore.load(actualPath, esConfig.getKeystorePassword().toCharArray() );

final SSLContext sslContext = SSLContexts.custom()
                    .loadTrustMaterial(truststore, null)
                    .build();
RestClientBuilder builder = RestClient.builder(new HttpHost(esConfig.getEsHost()[0], esConfig.getEsPort(), "https"))
                    .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                        @Override
                        public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                            return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider).setSSLContext(sslContext);

                        }
                    });

client = new RestHighLevelClient(builder);

Это код для создания клиента, и я не увидел там никаких исключений, но при использовании следующего кода для выполнения поиска я получаю эту ошибку.

searchResponse = client.search(searchRequest);

Любая помощь приветствуется. JKS-пароль верен, так как может открыть файл JKS с этим паролем

...