【问题标题】:webMethods pub.client.http throws error on 401webMethods pub.client.http 在 401 上抛出错误
【发布时间】:2015-08-30 13:48:22
【问题描述】:

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

pub.client.http

在状态码 401“未授权”上引发异常。

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

getLastError

确实包含字符串“未授权”但不包含状态代码。 除了我不想开始解析异常消息...

有什么想法吗?

【问题讨论】:

    标签: http exception http-status-code-404 webmethods


    【解决方案1】:

    向 SAG 高级顾问提问。 这是正常行为。 没有可以设置的标志来强制禁止此异常...

    【讨论】:

      【解决方案2】:

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

      标题   文档 有条件的。 HTTP 响应标头。

      键                   描述

                        文档 响应标头中的字段,其中键名代表
      字段名称和值表示字段值。
      status                String 响应的 HTTP 状态代码。
      statusMessage   String 响应的 HTTP 状态消息。

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

      【讨论】:

      • 第一:感谢您的留言!但我的问题是http方法抛出异常。之后管道中没有标题信息......我期待你描述的...... :-)
      • 我明白了……嗯,这太容易了吧? :-) 你确定你正确地填充了auth 输入文档吗?或者实际上正在到达目标服务器?也许你偶然发现了一些导致异常的 ACL 限制,它实际上不是来自目标 url 的 unauthorized 错误,而是来自 wM 本身?我现在无权进行安装以进行测试,但也许如果您发布完整的错误消息,我们可以从那里获得更多线索……
      • 当然!认证数据不正确!那是我的测试用例之一! :-)
      【解决方案3】:

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

      您应该考虑的事项:

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

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


      解决方案

      要通过这个,您需要做的就是在pub.client:http 中输入auth user/password 或任何其他身份验证机制,即kerberos、令牌等

      【讨论】:

      • 请阅读我的问题。我的问题不是身份验证失败。问题是如何失败。
      【解决方案4】:

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

      watt.net.http401.throwException=false
      

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

      【讨论】:

      • 那将是我一直在寻找的答案 - 但幸运的是,我不必再驯服 webmethods。 :-) 谢了!
      猜你喜欢
      • 2021-06-18
      • 2011-11-05
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多