mule - MuleSoft 4 - 我如何将错误从 Http:Request 路由到我的主错误处理程序?
问题描述
我想将我的路由到Anypoint Studio 7中http:request
的主要(或次要)error handler
我似乎没有明确的方法。并且该文档没有针对此特定案例的指南。
在我的情况下是必要的,我需要知道并向另一个服务发送信号并传达错误响应,例如:connection_timeout
解决方案
您可以error-handler
在执行http:request
. 如果您没有发现错误,它将冒泡到调用流程等等。如果没有配置错误处理程序,将使用默认的 mule ,它基本上只记录消息。
在 Mule 4 中,您可以像这样捕获流程中的所有错误:
<flow name="retrieveMatchingOrders">
<http:request config-ref="customersConfig" path="/customer">
</http:request>
<error-handler>
<on-error-continue>
<!-- error handling logic -->
</on-error-continue>
</error-handler>
</flow>
一个on-error-continue
将执行并使用执行结果,作为其所有者的结果(就好像所有者已经成功地实际完成了执行一样)。此时也将提交任何事务
所以在那里,您可以将有效负载设置为您想要返回的消息等。
还有一个on-error-propogate
处理程序和一个try
范围,有关这些的更多信息可在此处获得:https ://docs.mulesoft.com/mule-runtime/4.1/intro-error-handlers
Mule 中抛出的所有错误都包含元数据,包括 TYPE。如果您需要捕获特定的 HTTP 错误,您可以像这样配置错误处理程序:
<error-handler>
<on-error-continue type="HTTP:TIMEOUT">
<!-- error handling logic -->
</on-error-continue>
</error-handler>
以下是 HTTP 模块抛出的所有特定 HTTP: 错误的列表:
HTTP:UNSUPPORTED_MEDIA_TYPE
HTTP:连接性
HTTP:INTERNAL_SERVER_ERROR
HTTP:METHOD_NOT_ALLOWED
HTTP:NOT_ACCEPTABLE
HTTP:TOO_MANY_REQUESTS
HTTP:SERVICE_UNAVAILABLE
HTTP:CLIENT_SECURITY
HTTP:禁止
HTTP:未经授权
HTTP:RETRY_EXHAUSTED
HTTP:NOT_FOUND
HTTP:BAD_REQUEST
HTTP:解析
HTTP:超时
HTTP:安全
每个模块的文档都应该包含该模块抛出的所有特定错误类型。这是 HTTP 一个示例: https ://docs.mulesoft.com/connectors/http/http-documentation#throws
这是您可以捕获的核心错误类型的完整列表,EXPRESSION
例如:
https://docs.mulesoft.com/mule-runtime/4.1/mule-error-concept
推荐阅读
- html - Bootstrap 4 内嵌导航栏表单
- eclipse - 从 Eclipse IDE 连接到 Netsuite 时出现 javax/xml/soap/SOAPException
- javascript - 这是什么类型的数组?我如何返回它的第一个索引号?
- css - 情感 UI:模板文字在关键帧中不起作用?
- javascript - 如何在单个语句中应用多个索引
- excel - 根据列标题将数据从一个工作簿转移到另一个工作簿
- java - RLE 图像的功能无法正常工作
- ts-jest - 在 nx 中使用 jest 时找不到模块
- c# - 通过 C# 中的接口使用泛型类型的模型
- google-sheets - 有没有办法知道 BSC 钱包的全部余额?