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

时间:2019-05-31 00:07:42

标签: talend

我正在尝试使用Talend API自动执行任务作业,但是当我尝试使用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}

我发现了另一个stackoverflow问题Add context parameters to Talend job in Tac via API without actually running it,但他没有说出他如何通过,并且我无法以询问他如何做的评论来回复

真正的talend api调用是:

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

我可以寻求帮助吗?

1 个答案:

答案 0 :(得分:1)

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

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