rawBody и typeRef не могут быть преобразованы в переменную ошибку, которую я получаю в строке list = mapper.realValue (rawBody, typeRef)

у хороший, быстрый и простой способ получить все показатели вasticsearch, используя ихJava REST клиент, В настоящее время я могу сделать это, захватив их клиент более низкого уровня, например так:

public void fetchIndices() throws IOException {
    List<String> indices = null;

    RestClient restClient = client.getLowLevelClient();
    Response response = null;
    try {
        response = restClient.performRequest("GET", "/_cat/indices?v");
    } catch (IOException e) {
        LOGGER.log(Level.WARNING, e.toString(), e);
    }

    InputStream inputStream = null;
    if (response != null) {
        try {
            inputStream = response.getEntity().getContent();
        } catch (IOException e) {
            LOGGER.log(Level.WARNING, e.toString(), e);
        }
    }

    if (inputStream != null) {
        InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

        indices = new ArrayList<>();
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            // Get tokens with no whitespace
            String[] tokens = line.split("\\s+");
            for (String token : tokens) {
                // TODO - make the startsWith() token configurable
                if (token.startsWith(SOME_TOKEN)) {
                    LOGGER.log(Level.INFO, "Found elasticsearch index " + token);
                    indices.add(token);
                    break;
                }
            }
        }
    }

    // Only update if we got data back from our REST call
    if (indices != null) {
        this.indices = indices;
    }
}

По сути, я просто называю/_cat/indices?v конечная точкакак рекомендовано в их документах, Это прекрасно работает, но мне было интересно, есть ли лучший способ сделать это с помощью Java API. Кажется, я не могу найти пути в их нынешнем API, но мне интересно, знает ли кто-нибудь что-то, чего я не знаю. Работать сInputStreamи различныеReaderЭто не обязательно ужасно, но просто хочу убрать хакерский анализ строки.

Ответы на вопрос(2)

Ваш ответ на вопрос