Я установил поисковую охрану для кластера эластичного поиска.Теперь мне нужно использовать пароль учетной записи для подключения к кластеру и использовать метод https, но, согласно моему коду, после запуска операция запроса выдаст ошибку, код будет следующим:
Я будуПри использовании приведенного ниже кода появляется ошибка.
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
@Bean
public static RestHighLevelClient getInstance() {
String esAuth = "Basic " + Base64.encode(user + ":" + password);
Header[] defaultHeaders = new Header[]{new BasicHeader("Authorization", esAuth)};
client = new RestHighLevelClient(
RestClient.builder(new HttpHost(ip, port, "https"))
.setDefaultHeaders(defaultHeaders)
.setMaxRetryTimeoutMillis(150000)
.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder
.setConnectTimeout(5000)
.setSocketTimeout(150000)));
return client;
}
Это ошибка:
java.lang.IllegalStateException: Request cannot be executed; I/O
reactor status: STOPPED at
org.apache.http.util.Asserts.check(Asserts.java:46)
~[httpcore-4.4.10.jar:4.4.10] at
org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.ensureRunning(CloseableHttpAsyncClientBase.java:90)
~[httpasyncclient-4.1.4.jar:4.1.4] at
org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:123)
~[httpasyncclient-4.1.4.jar:4.1.4] at
org.elasticsearch.client.RestClient.performRequestAsync(RestClient.java:529)
~[elasticsearch-rest-client-6.4.3.jar:6.5.4] at
org.elasticsearch.client.RestClient.performRequestAsyncNoCatch(RestClient.java:514)
~[elasticsearch-rest-client-6.4.3.jar:6.5.4] at
org.elasticsearch.client.RestClient.performRequest(RestClient.java:226)
~[elasticsearch-rest-client-6.4.3.jar:6.5.4] at
org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1593)
~[elasticsearch-rest-high-level-client-6.5.4.jar:6.5.4]