webMethods pub.client.http 在 401 上抛出错误

webMethods pub.client.http throws error on 401

我正在使用来自 SAG 的 webMethods,似乎服务

pub.client.http

在状态代码 401 上引发异常 "Unauthorized"。

这导致我无法处理状态代码,因为没有任何内容写入管道。

getLastError

确实包含字符串 "Unauthorized" 但不包含状态代码。 除了我不想开始解析异常消息...

有什么想法吗?

pub.client.http 调用的输出参数 header 应包含您需要的信息:

header   Document Conditional. HTTP response headers.

Key                    Description

lines                   Document Fields in the response header, where key names represent
                           field names and values represent field values.
status                 String HTTP status code of the response.
statusMessage   String HTTP status message of the response.

有关详细信息,请参阅 webMethods Integration Server Built-In Services Reference 第 122 页。

SAG 资深顾问问。 这是正常行为。 没有可以设置的标志来强制抑制此异常...

根据 的评论,可能存在 ACL 限制,无论是在您的 webMethods 环境中,还是在您的客户端 URL 中。

您应该考虑的事项:

  1. 您的 webMethods 服务器是否位于封闭环境中,其中需要连接到代理以获取传出请求。这很可能你可以通过 运行 网络浏览器程序直接从你的 wM 服务器到 URL 地址进行调查(即在我的情况下使用 SSH 到 运行 firefox 并出现弹出窗口)

  2. 您的请求将到达的客户端,具有用于身份验证请求的 HTTP


解决方案

要通过这个,您需要做的就是在 pub.client:http

中输入 auth user/password 或任何其他身份验证机制,即 kerberos、令牌等

可以抑制异常并像任何其他 HTTP 响应一样返回 HTTP 401 状态。转到 IS Admin Extended Settings 并设置:

watt.net.http401.throwException=false

请注意,这是一个服务器范围的设置,因此它会影响所有使用 pub.client:http 的 applications/services。