访问DataWeave中的抛出异常

时间:2016-03-01 12:53:08

标签: mule dataweave anypoint-studio

是否可以在Catch Exception Strategy中访问例外 - >转换消息组件?我知道我可以通过 MEL#[exception.cause] 访问它,但我无法找到有关如何在DataWeave中访问它的任何内容。

非常感谢。

2 个答案:

答案 0 :(得分:4)

你可以在有效载荷中设置异常(如@Ralph Rimorin建议的那样),或者你可以将它设置为变量并在dw中使用 -

<catch-exception-strategy doc:name="Catch Exception Strategy">
        <logger message="#[exception.message]" level="ERROR" doc:name="Logger"></logger>
        <set-variable variableName="exception" value="#[exception]"
            doc:name="Set Exception to FlowVars"
            doc:description="This is to ensure that exception object is avaiable to Send Support Email component which uses exception from flowVars instead of the one set by mule at #[exception] as it sometimes tend to get lost."></set-variable>
        <dw:transform-message doc:name="Transform Message">
            <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
{
a:flowVars.exception
}]]></dw:set-payload>
        </dw:transform-message>


    </catch-exception-strategy>

答案 1 :(得分:1)

@Lukas,如果通过流引用捕获异常,则调用流将能够使用dataweave评估异常。在Catch异常策略中,尝试将异常设置为有效负载,然后在调用流中设置,数据编辑将处理该异常。