如何修复使用 Carte API 检索作业和转换时的“401 Unauthorized”错误?

问题描述 投票:0回答:1

我正在尝试使用 carte API REST 检索作业和转换列表。然而我做不到。从代码中,执行

http://...../kettle/status
时,我得到 200 代码,但是如果我尝试访问
http://...../kettle/jobs
我收到错误。

如果我执行以下命令:

wget http://cluster:cluster@localhost:8080/kettle/status

我收到以下回复:

--2023-05-25 13:38:50-- http://cluster:*password*@localhost:8080/kettle/status
Resolviendo localhost (localhost)... 127.0.0.1, ::1
Conectando con localhost (localhost)[127.0.0.1]:8080... conectado.
Petición HTTP enviada, esperando respuesta... 401 Unauthorized
Reutilizando la conexión con localhost:8080.
Petición HTTP enviada, esperando respuesta... 302 Found
Localización: http://localhost:8080/kettle/status/ [siguiendo]
--2023-05-25 13:38:50--  http://localhost:8080/kettle/status/ Reutilizando la conexión con localhost:8080.

你能猜出问题出在哪里吗? 预先感谢

repository kettle http-status-code-401 http-status-code-302
1个回答
0
投票

回答以下问题:

我正在尝试使用 carte API REST 检索作业和转换列表。然而我做不到。从代码中,执行 http://...../kettle/status 时,我得到 200 代码,但是如果我尝试访问 http://...../kettle/jobs ,我会收到错误。

为了从 Pentaho Carte 检索作业和转换的状态,您需要使用

/kettle/jobStatus/
/kettle/transStatus/
REST 端点来正确获取结果。 Pentaho 文档提供了相同的必要细节。

在上述两种情况下,您都需要传递作业/转换名称或对象 ID 才能获取详细信息。

如果我执行以下命令: wget http://cluster:cluster@localhost:8080/kettle/status 我得到以下回复:

假设点菜服务器的用户名和密码正确,则生成的日志似乎是 WGET 的默认行为。 WGET 生成大量诊断信息,这些信息可能看起来像是重定向到标准输出,而错误则被推送到标准错误。 WGET 还将响应标头解释为诊断信息的一部分。因此,它将把标头信息发送到 stderr。为了解决这个问题,您可以使用arg,

-q
(安静)来抑制诊断信息。例如:

wget -q 'http://localhost:8085/kettle/status/?xml=Y' --user cluster --password cluster  --output-document kettle_status

上述命令将输出重定向到文件

kettle_status
xml=Y
生成 Carte REST API 响应的 XML 输出。

或者,您可以使用 CURL 以 XML 格式获取水壶状态。

 curl -u "cluster:cluster" -X GET 'http://localhost:8084/kettle/status/?xml=Y'

© www.soinside.com 2019 - 2024. All rights reserved.