我试图使用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}
我发现了另一个堆栈溢出问题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
我能得到一些帮助吗?
发布于 2019-05-31 08:38:26
实际上,传递给metaservlet的json不是有效的json。你可以用http://jsonlint.com这样的在线验证器来检查它。
您将contextParams
属性指定为数组,但该语法在json中无效。数组可以包含值列表(如jvmParams
),也可以包含对象(对象本身可以包含数组)。这是一个example。
此外,根据Talend reference的说法,该属性应该称为"context
“,并且必须是对象而不是数组,如下所示:
"context":{"varname1": "varvalue", "varname2": "varvalue2"}
https://stackoverflow.com/questions/56387093
复制相似问题