Заголовки Elasticsearch 8.13JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Заголовки Elasticsearch 8.13

Сообщение Anonymous »

Я пытаюсь подключиться к серверу Elasticsearch 8.13.0 с помощью Spring Boot 3.3.3, но при запуске моя служба загрузки Sping выдает ошибку:

Код: Выделить всё

co.elastic.clients.elasticsearch._types.ElasticsearchException: [es/indices.create] failed: [media_type_header_exception] Invalid media-type value on headers [Content-Type, Accept]
Я создаю RestClient следующим образом:

Код: Выделить всё

@Bean
public RestClient restClient() {
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(elasticCredentials.getUsername(), elasticCredentials.getPassword()));

return RestClient.builder(new HttpHost(elasticProperties.getHost(), elasticProperties.getPort()))
.setHttpClientConfigCallback(httpClientBuilder -> {
httpClientBuilder.disableAuthCaching();
httpClientBuilder.setDefaultHeaders(List.of(
new BasicHeader(
HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.toString())
));
httpClientBuilder.addInterceptorLast((HttpResponseInterceptor)
(response, context) ->
response.addHeader("X-Elastic-Product", "Elasticsearch"));
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}).build();
}
Я уже пробовал установить для заголовка Accept значение «application/json» или «application/vnd.elasticsearch+json;standard-with=8»? вот так:

Код: Выделить всё

@Bean
public RestClient restClient() {
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(elasticCredentials.getUsername(), elasticCredentials.getPassword()));

return RestClient.builder(new HttpHost(elasticProperties.getHost(), elasticProperties.getPort()))
.setHttpClientConfigCallback(httpClientBuilder -> {
httpClientBuilder.disableAuthCaching();
httpClientBuilder.setDefaultHeaders(List.of(
new BasicHeader(
HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.toString()),
new BasicHeader(
HttpHeaders.ACCEPT, ContentType.APPLICATION_JSON.toString())
));
httpClientBuilder.addInterceptorLast((HttpResponseInterceptor)
(response, context) ->
response.addHeader("X-Elastic-Product", "Elasticsearch"));
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}).build();
}
И единственное, что изменилось, это сообщение об ошибке:

Код: Выделить всё

Invalid media-type value on headers [Accept]
...та же ошибка, но без Content-Type.
Может ли кто-нибудь помочь мне с этой проблемой?

Подробнее здесь: https://stackoverflow.com/questions/792 ... 13-headers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»