Я пытаюсь сделать запрос к базе данных ElasticSearch, используя ее Rest API. Я строю клиента на Java с помощью Spring restTemplate.
Сначала я попробовал запрос с помощью клиента почтальона, и он работает нормально.
Например:
На почтальоне :
Url : http://localhost:9200/index/_search
Headers: Content-Type : application/json
Body: Raw
Body content: {
"_source": ["_id", "message"],
"query": {
"match_all": {}
}
}
А в классе Java:
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(input, headers);
ResponseEntity<String> loginResponse = restTemplate
.exchange(url,
HttpMethod.POST, entity, String.class);
Исключением является ошибка 500 Internal Server. Я могу выполнить простой запрос на получение, но у меня возникла проблема при публикации данных JSON в запросе на публикацию. В чем может быть причина внутренней ошибки сервера?
Вот трассировка стека, напечатанная на консоли.
21:10:59.718 [main] DEBUG org.springframework.web.client.RestTemplate - Created POST request for "http://localhost:9200/index/_search"
21:10:59.738 [main] DEBUG org.springframework.web.client.RestTemplate - Setting request Accept header to [text/plain, */*]
21:10:59.740 [main] DEBUG org.springframework.web.client.RestTemplate - Writing [{"_source": ["_id","message"], "query": {"match_all": {}}] as "application/json" using [org.springframework.http.converter.StringHttpMessageConverter@6522d847]
21:10:59.967 [main] WARN org.springframework.web.client.RestTemplate - POST request for "http://localhost:9200/index/_search" resulted in 500 (Internal Server Error); invoking error handler
org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:71)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:486)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:443)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:401)
at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:279)
Вот изображение из отладчика eclipse, более подробно указывающее на ошибку.