Как я могу передать контекстные параметры, используя Talend API? - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь автоматизировать выполнение заданий talend с помощью API Talend, но получаю сообщение об ошибке при попытке передать параметры контекста с помощью API.

json, который я кодирую в 64,следующее:

JSON='{ "actionName":"runTask", "authPass": "TalendPass", "authUser": "name@example.com", "jvmParams": [ "-Xmx256m" , "-Xms64m" ], "contextParams": ["host_mysql_db01": "failed", "database_analytics": "testing.it"],"mode": "synchronous", "taskId": 43}'

Сообщение об ошибке:

{"error":"Expected a ',' or ']' at character 172","returnCode":2}

Я обнаружил еще одну проблему с переполнением стека Добавление параметров контекста в задание Talend в Tac через API без фактического его запуска , ноон не говорит, как он передает это, и я не могу ответить с комментарием, спрашивающим, как он сделал это

Реальный вызов API Talend:

wget -O file http://localhost:8080/org.talend.administrator/metaServlet?$JSON_ENCODED

Могу ли я получить некоторую помощь?

1 Ответ

2 голосов
/ 31 мая 2019

На самом деле, json, который вы передаете в метасервлет, не является действительным json. Вы можете проверить это с помощью онлайн-валидатора, например http://jsonlint.com.
Вы указываете атрибут contextParams как массив, но этот синтаксис недопустим в json. Массив может содержать список значений (например, jvmParams) или объекты (которые сами могут содержать массивы). Вот пример .
Более того, в соответствии с ссылкой на Talend , атрибут должен называться "context" и должен быть объектом, а не массивом, например:

"context":{"varname1": "varvalue", "varname2": "varvalue2"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...