如何从Mule应用程序获取HTTP状态代码

问题描述 投票:0回答:2

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

如何获取HTTP状态?

谢谢

mule http-status-codes anypoint-studio mule-el
2个回答
1
投票
在流中进行HTTP请求调用时,

message.inboundProperties ['http.status']将提供http.status代码。如果流试图调用DB,那么您可能需要在流的错误处理内部包含一个catch异常策略,以捕获所需的异常。如果异常匹配,则可以设置要发送到客户端的http.status和异常有效负载。


0
投票

如果使用的是APIKit Router,则可以使用以下代码:

 <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

© www.soinside.com 2019 - 2024. All rights reserved.