我使用的是Anypoint Studio 6.1和Mule 3.8.1,并且有一个调用MongoDB的流程。我想看看如何获取HTTP状态,以便我可以配置我的异常处理。当我断开MongoDB并运行Mule工作流时,它会按预期失败,但当我尝试使用此表达式message.inboundProperties['http.status']
并且异常消息代码为-1时,HTTP状态将返回为null,但是当我将错误播放到在Postman中,状态显示为500的工作流结束。
如何获取HTTP状态?
由于
答案 0 :(得分:1)
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="{ "message": "Internal server error" }" doc:name="Set Payload" />
</apikit:mapping>
有关详细信息,请查看here