Exception handling 当捕获到异常时,如何在Mule中保留有效负载?
我使用了“捕获异常策略”来捕获流中出现的任何异常。现在,我想打印异常发生之前的有效负载。有没有办法在mule中实现这一点?将有效负载存储在会话变量中,并在捕获异常策略中打印它。您可以使用Exception handling 当捕获到异常时,如何在Mule中保留有效负载?,exception-handling,mule,esb,Exception Handling,Mule,Esb,我使用了“捕获异常策略”来捕获流中出现的任何异常。现在,我想打印异常发生之前的有效负载。有没有办法在mule中实现这一点?将有效负载存储在会话变量中,并在捕获异常策略中打印它。您可以使用消息从MuleMessage中获取异常有效负载。getExceptionPayload()但是,当发生异常时,有效负载被消耗,为了获得异常之前的原始有效负载,您必须将有效负载存储在变量中,如,然后在异常发生后使用MEL#[flowVars.originalPayload](或使用message.getInvoca
消息从MuleMessage中获取异常有效负载。getExceptionPayload()
但是,当发生异常时,有效负载被消耗,为了获得异常之前的原始有效负载,您必须将有效负载存储在变量中,如
,然后在异常发生后使用MEL#[flowVars.originalPayload]
(或使用message.getInvocationProperty)访问它(“originalPayload”)
如果您在JAVA组件中)
以下是一些链接供您参考,但这些链接将为本主题提供更多信息:
您可以为变量使用会话作用域,这样它就不会丢失
-Shanky G.您可以通过拖动“捕获异常策略”来尝试如下操作
希望这对您有所帮助!感谢您的回复。我的原始有效负载已经过一些处理。现在出现了异常。那么,我如何能够在不知道异常会出现在何处的情况下将此处理后的有效负载存储在变量中?很抱歉,回复太晚。我遇到了Mule服务器通知,您可以使用这些通知创建侦听器对于某些事件甚至异常。如果您还没有找到任何解决方案来满足您的需求,那么这可能会对您有所帮助。感谢您的响应。我的原始有效负载已经过一些处理。现在出现了异常。那么,我如何能够在不知道异常可能发生在何处的情况下将处理后的有效负载存储在变量中?
<catch-exception-strategy doc:name="Catch_Exception_Strategy">
<logger message="Exception---" level="INFO" doc:name="Logger"/>
<set-variable variableName="SetException" value="#[exception.message]" doc:name="SetException"/>
<set-payload value="#[payload]" doc:name="FailedToEvaluateTheTask"/>
</catch-exception-strategy>