2017-02-12 88 views
0

我正在使用Anypoint Studio 6.1和Mule 3.8.1,並且有一個調用MongoDB的流程。我想看看如何獲​​取HTTP狀態,以便我可以配置我的異常處理。當我斷開MongoDB並運行Mule工作流時,它按預期失敗,但是當我嘗試使用表達式message.inboundProperties['http.status']並且異常消息代碼爲-1時,HTTP狀態返回爲空,但是當我將錯誤播放到工作流的末尾時郵遞員狀態顯示爲500。如何從Mule獲取HTTP狀態代碼

如何獲得HTTP狀態?

由於

回答

1

message.inboundProperties [ 'http.status']將給出http.status代碼當HTTP請求調用在流之內。如果流試圖調用數據庫,那麼您可能需要在流的錯誤處理內部有一個catch異常策略來捕獲所需的異常。如果異常匹配,則可以將http.status和異常有效負載設置爲發送到客戶端。

0

如果您正在使用API​​Kit路由器,那麼你可以使用下面的代碼:

<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