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

跨同步VM端点的Mule异常策略传播,mule,Mule,我正在试验异常策略,遇到了以下配置 如果我使用同步vm端点从另一个流调用一个流,并且没有捕获被调用方流中的异常。调用方流异常策略不会被调用,而是被调用方流添加了一个exceptionPayload 我假设如果存在一个exceptionPayload,调用方流异常策略将被调用。但事实并非如此。这是一个特性还是一个bug <flow name="main" doc:name="main"> <poll frequency="60000">

我正在试验异常策略,遇到了以下配置

如果我使用同步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>


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

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

MEL处理上下文对象:如您所见,这里没有
exceptionPayload
字段