在自定义对象中包含Mule错误,然后重定向到O/JMS端点

在自定义对象中包含Mule错误,然后重定向到O/JMS端点,jms,mule,Jms,Mule,作为Mule流的一部分,我们已经实现了一个全局异常策略,该策略将有效负载对象重定向到JMS出站端点-端点将对象作为有效负载接收,但我们还希望在有效负载对象本身中包含异常信息,以便接收线程可以使用它。例如,下面的块工作正常,但是如何截获异常并使用异常摘要和堆栈信息更新有效负载 catch-exception-strategy name="globalCatchStrategy" set-payload value="Error : #[exception.summaryMessage]"/ jms

作为Mule流的一部分,我们已经实现了一个全局异常策略,该策略将有效负载对象重定向到JMS出站端点-端点将对象作为有效负载接收,但我们还希望在有效负载对象本身中包含异常信息,以便接收线程可以使用它。例如,下面的块工作正常,但是如何截获异常并使用异常摘要和堆栈信息更新有效负载

catch-exception-strategy name="globalCatchStrategy"
set-payload value="Error : #[exception.summaryMessage]"/
jms:outbound-endpoint connector-ref="ActiveMQ" doc:name="JMS" queue="${jms.outbound.queue}"
catch-exception-strategy

注意-我必须删除open和close XML大括号,以便在stackoverflow中呈现

好的,我设法通过以下方式解决了这个问题-我们在JMS消息中发送一个可序列化的DTO作为有效负载,如果流中存在异常,它将返回-因此我向有效负载对象添加了异常属性,并在上面的JMS出站端点之前附加了一个转换器-所以现在流看起来是这样的

catch-exception-strategy name="globalCatchStrategy"
custom-transformer class="MyTransformerClass" doc:name="Exception Extractor"
jms:outbound-endpoint connector-ref="ActiveMQ" doc:name="JMS" queue="${jms.outbound.queue}"
catch-exception-strategy
在MyTransformerClass实例中,获取负载

ExceptionPayload exceptionPayload = message.getExceptionPayload();