【问题标题】:Unable to read exact error response body from HTTP Request connector in Mule 4.2无法从 Mule 4.2 中的 HTTP 请求连接器读取准确的错误响应正文
【发布时间】:2019-11-19 13:51:08
【问题描述】:

我们正在使用 REST API 以 XML 格式将 PO 数据发布到 Oracle 实例。 在失败的情况下,它只是来自 error.description 示例“HTTP POST on resource 'https://hostname:post/fscmService/PurchaseOrderServiceV2' failed: internal server error (500)”的打印消息。 现在的请求是从 Oracle Cloud ERP 打印准确的错误消息。 当我们从 Postman 运行相同的测试用例时,我们可以在响应正文中看到确切的错误消息,我试图在 mule logger 中打印相同的响应,并希望发送与响应有效负载相同的响应,但无法获取它。

我尝试调试 Mule 流程并在异常处理程序“On Error Propagate”中停止并查看所有变量以查看实际的错误响应但没有找到。请指教!

请在下面找到截图以供参考。

【问题讨论】:

    标签: mule mule-studio mule-component mule-esb mulesoft


    【解决方案1】:

    您可以通过error.errorMessage.payload 访问失败的响应正文。

    【讨论】:

    • 我正在尝试相同的方法,直到功能成功并且错误处理程序中的“error.errorMessage.payload”为空。
    • 代码:直到成功>
    • 嗨,Afelisatti,您能就这个问题提出建议吗?
    • 您能否更新调试视图图像以显示muleMessage 字段中的error 中的内容?我没有在上面共享的代码 sn-p 上看到错误处理程序,这是您访问 error 变量的唯一地方。
    • 更新了内部调试图像直到成功和外部直到成功。
    【解决方案2】:

    这里是修复。

    如果没有直到成功:我们可以通过 error.errorMessage.payload 或 error.muleMessage.typedValue 访问失败的响应正文

    使用直到成功:我们可以通过以下方式访问失败的响应正文: error.exception.cause.errorMessage.payload 或 error.exception.cause.errorMessage.typedValue

    谢谢。

    【讨论】:

    • 请记住,Mule API 不支持 error.muleMessage.typedValue,它之所以有效,是因为它使用反射来访问这些值。
    • 感谢您对 Afelisatti 的支持 :)。
    【解决方案3】:

    使用 Until-Successful,我看到 error.exception.cause = null,但看到 error.muleMessage.typedValue 包含失败的响应正文。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      • 2017-12-16
      • 2021-12-04
      • 2019-02-09
      • 1970-01-01
      相关资源
      最近更新 更多