Невозможно передать аргументы со значениями в одинарных кавычках, чтобы изменить работу - PullRequest
1 голос
/ 19 марта 2019

Я пытаюсь представить свою банку с аргами.Я использую Flink Rest Api для отправки моих аргументов в формате JSON.Мой входной образец в Java

1002 *
JSONObject json = new JSONObject();
 json.put("programArgs","--bootstrap.server \"localhost:9092\" --zookeeper.server \"localhost:2181\" --query \"where agentHost='192.168.170.111'\" --source.topic \"demo1\" --dest.topic \"rules\" --job.id \"123\" --extra.info \"sdcdscsd\"");
httpPost.setEntity(new StringEntity(json.toJSONString()));

, когда я даю именно эти аргументы, моя работа выполняется через IDE, однако, когда я отправляю ее через rest api, мой аргумент запроса приходит без одинарных кавычек.И, следовательно, я получаю исключение синтаксического анализа Calcite sql.

Как мне решить эту проблему?

1 Ответ

1 голос
/ 20 марта 2019

Вам необходимо отправить параметры в виде списка параметров, а не в виде строки. Вы можете сделать это, установив вместо этого поле programArgsList, которое имеет тип array:

json.put("programArgsList", Arrays.asList("--bootstrap.server", "localhost:9092", "--zookeeper.server", "localhost:2181", "--query", "where agentHost='192.168.170.111'", "--source.topic", "demo1", ...));

Таким образом, Flink не удалит одинарные кавычки как часть анализа ввода. См. FLINK-10295 для получения дополнительной информации.

...