如何从Mule获取HTTP状态代码

时间:2017-02-12 13:50:47

标签: mule http-status-codes anypoint-studio mel

我使用的是Anypoint Studio 6.1和Mule 3.8.1,并且有一个调用MongoDB的流程。我想看看如何获​​取HTTP状态,以便我可以配置我的异常处理。当我断开MongoDB并运行Mule工作流时,它会按预期失败,但当我尝试使用此表达式message.inboundProperties['http.status']并且异常消息代码为-1时,HTTP状态将返回为null,但是当我将错误播放到在Postman中,状态显示为500的工作流结束。

如何获取HTTP状态?

由于

2 个答案:

答案 0 :(得分:1)

当在流中进行HTTP请求调用时,

message.inboundProperties ['http.status']将给出http.status代码。如果流程试图调用DB,那么您可能需要在流的错误处理中使用catch异常策略来捕获所需的异常。如果匹配异常,则可以将http.status和异常有效负载设置为发送到客户端。

答案 1 :(得分:0)

如果您使用的是APIKit路由器,则可以使用以下代码:

 <apikit:mapping-exception-strategy name="apiKitGlobalExceptionMapping">
    <apikit:mapping statusCode="500">
         <apikit:exception value="java.lang.Exception"/>
         <set-property propertyName="Content-Type" value="application/json" doc:name="Property" />
         <set-payload value="{ &quot;message&quot;: &quot;Internal server error&quot; }" doc:name="Set Payload" />
     </apikit:mapping>

有关详细信息,请查看here