【问题标题】:How can I pass context params using talend api?如何使用 talend api 传递上下文参数?
【发布时间】:2019-05-31 00:07:42
【问题描述】:

我正在尝试使用 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}

我发现了另一个 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

我能得到一些帮助吗?

【问题讨论】:

    标签: talend


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢@iMezouar,我搞定了。我在 talend 文档中找到了上下文值,但它没有显示我们应该如何传递参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多