Mule -跨同步VM端点的异常策略传播



我正在尝试异常策略,并遇到以下配置:

如果我使用同步vm端点从另一个流调用一个流,并且没有在被调用流中捕获异常。调用者流异常策略不会被调用,而是被调用者流添加一个exceptionPayload。

我假设如果有一个exceptionPayload,调用者流异常策略将被调用。但事实并非如此。这是一个特性还是一个bug?

<flow name="main" doc:name="main">
        <poll frequency="60000">
            <set-payload value="main"></set-payload>
        </poll>
        <vm:outbound-endpoint address="vm://private" exchange-pattern="request-response" />
        <logger level="ERROR" message="After private #[exception]" />
        <catch-exception-strategy>
            <logger level="ERROR" message="Exception caught in parent." />
        </catch-exception-strategy>
    </flow>
    <flow name="private">
        <vm:inbound-endpoint address="vm://private" exchange-pattern="request-response" />
        <logger level="ERROR" message="private" />
        <null-component></null-component>
    </flow>

我也可以通过MEL使用#[exception]而不是通过#[message.exceptionPayload]访问exceptionPayload。在Mule中不能以这种方式访问它有什么原因吗?我可以在defaultmullemessage上看到它

Mule是一个面向消息的平台,因此,根据设计,异常包含在流(而不是子流)中,并作为特定的消息有效负载传播。

MEL在上下文对象上工作:这里是MessageContext对象API,如您所见,没有exceptionPayload字段。

最新更新