在catchexceptionstrategy

时间:2017-07-14 02:52:18

标签: mule mule-studio mule-component mule-el

我已启用"记录例外"在以下捕获异常策略的情况下。我在这里设置有效负载,但仍然在日志中打印原始有效负载。我如何拦截它并将其设置为Flow变量的值。下面是我的catch-exception-strategy和日志消息。我想为任何运行时异常执行此操作。提前感谢您的帮助。

 <catch-exception-strategy  doc:name="500">
        <message-properties-transformer doc:name="Message Properties">
                <add-message-property key="http.status" value="500"/>
                <add-message-property key="Content-Type" value="application/json"/>
            </message-properties-transformer>
            <set-payload value="#[flowVars.maskedCCPayloadVar]" mimeType="application/json" doc:name="Set maskedCCPayloadVar"/>
 </catch-exception-strategy>

记录消息

org.mule.exception.CatchMessagingExceptionStrategy:

Message               : Execution of the expression "payload/test" failed. (org.mule.api.expression.ExpressionRuntimeException).
Payload               : {
  "Request": {
    "CardDetails": {     
      "CardNumber": "5123456789012346",
      "ExpiryDate": "0521"
    },
    "AccountId": "12345678"
  }
}

2 个答案:

答案 0 :(得分:0)

使用setpayload组件或dataweave在catch异常策略中设置有效负载。

答案 1 :(得分:0)

日志异常将记录导致调用catch异常策略的异常

如果要在日志中记录其他内容,可以在异常策略块中使用Logger消息处理器,例如<logger message="Error message #[exception.getMessage()] level="ERROR" />。此外,如果要禁止mule中的默认错误日志,可以禁用&#34; Log Exceptions&#34;关于catch异常策略块。