【问题标题】:curl doesn't work from Pentaho Data Integration but it does in the terminalcurl 在 Pentaho 数据集成中不起作用,但在终端中起作用
【发布时间】:2017-04-22 16:26:28
【问题描述】:

我想使用 执行流程 步骤从转换中执行以下 curl:

 curl -k --basic --user "user:pass" -d "input.string=\"{\"parameter\":3}\"" "https://localhost:5050/jobs?appName=test&classPath=MyTestClass&context=context_test"

但我收到以下错误:

错误输出 = curl: (1) 协议“libcurl 中不支持或禁用 https

我直接在终端上执行相同的命令,效果很好。

我在 Centos 7 服务器上使用 6.0.1 版本的 PDI。

【问题讨论】:

    标签: curl pentaho pentaho-data-integration


    【解决方案1】:

    我尝试在我的 Windows 机器上做同样的事情,它运行良好(显然我收到了一个无法连接的错误,因为我没有类似于你的端点)。

    无论如何,我发现另一个问题更深入地探讨了 Linux 上的相同错误 (How do I enable https support in libcurl?)。我认为您必须发现 Pentaho 使用的是哪个 curl,因为它可能与您的默认安装不同。

    无论如何,您是否考虑过使用 HTTP 客户端步骤而不是使用外部进程?我认为它具有性能/调试优点,并且您不会被绑定到外部 lib 版本/安装来使您的工作正常进行。

    【讨论】:

    • 非常感谢,您说得对,看来 Pentaho 使用的是不同的 curl。我想知道为什么,我认为 Execute a Process 步骤会直接将命令发送到 linux 终端但似乎不是那样。
    • 很高兴它有帮助!我学到的另一件事肯定会在生产中的某个时候有用。
    • 知道如何让它从 pentaho 运行 curl 或 wget 命令吗?当我尝试运行通过终端(Mac OS Sierra)完美运行的脚本时,我收到一个错误“wget:找不到命令”
    【解决方案2】:

    为了让 Kettle 工作,您的请求应该是带有肥皂动作标头的 POST

    curl -X POST --header 'SOAPAction;' --basic --user '用户名:密码' 'url'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-30
      • 2021-11-29
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      相关资源
      最近更新 更多