如何使用 talend api 传递上下文参数?

How can I pass context params using talend api?

我正在尝试使用 Talend API 自动执行 talend 作业,但是当我尝试使用 api.

传递上下文参数时出现错误

我编码为 64 的 json 如下:

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}

我发现了另一个 Whosebug 问题 但他没有说他是如何通过的,我也无法回复询问他是如何通过的评论

真正的 talend api 调用是:

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

我能得到一些帮助吗?

实际上,您传递给 metaservlet 的 json 无效 json。您可以使用 http://jsonlint.com.
等在线验证器进行检查 您将 contextParams 属性指定为数组,但该语法在 json 中无效。数组可以包含值列表(如 jvmParams)或对象(它们本身可以包含数组)。这是 example.
此外,根据 Talend reference,该属性应称为“context”,并且必须是对象而不是数组,如下所示:

"context":{"varname1": "varvalue", "varname2": "varvalue2"}