Ожидаемая строка, но была BEGIN_OBJECT - PullRequest
0 голосов
/ 12 октября 2019

Я пишу код JAVA для обновления конфигурации в Ambari.

В журнале сервера Ambari я получаю следующее сообщение "Ожидается строка, но в строке 1 столбца 2" BEGIN_OBJECT "

На стороне клиента я получаю следующую ошибку HTTP / 1.1 500 Ошибка сервера

Ниже приводится выдержка из кода JAVA:

properties.put("Config_name","5096");

JSONObject desired_config = new JSONObject();
desired_config.put("type","service-master");
desired_config.put("tag","version15689870358181");
desired_config.put("service_config_version_note","New config version curl 1");
desired_config.put("properties", properties);

JSONObject Clusters = new JSONObject();
Clusters.put("desired_config", desired_config);

JSONObject UClusters = new JSONObject();
UClusters.put("Clusters", Clusters);

String jsonStr = UClusters.toString();
System.out.println("here it goes\n" + jsonStr);

StringEntity params = new StringEntity(jsonStr);
httpPost.setEntity(new StringEntity(jsonStr));

CloseableHttpResponse response = httpclient.execute(httpPost);

JSON на стороне Ambari - это большой файл, однако он стандартный. Дайте мне знать, если это необходимо, чтобы выручить меня.

Ниже команда curl работает нормально, и я пытаюсь использовать тот же формат JSON в своем коде Java.

curl -u admin:admin -H "X-Requested-By: ambari" -X PUT -d '{"Clusters":{"desired_config":{"type":"service-master","tag":"version156898703582004","properties":{"Config_name":"3096"},"service_config_version_note":"New config version curl 1"}}}' "http://[IP Address]:8080/api/v1/clusters/cluster1"

Моя цель - написать JAVA-программу для отправки / обновления конфигурации в Ambari. Я считаю, что мы можем использовать любой сервис для тестирования / обсуждения, например YARN.

Редактирование для добавления этого кода, который находится в Stringформат.


System.out.println(json);
StringEntity params = new StringEntity(json);
httpPost.setEntity(new StringEntity(json.toString()));

На стороне Ambari он дает мне «Информация о стеке должна предоставляться при создании кластера»

...