【问题标题】:Exception handling in Mule ESB Flows: Multiple exception strategiesMule ESB 流中的异常处理:多种异常策略
【发布时间】:2023-03-04 07:29:09
【问题描述】:

我想使用自定义异常策略在 Mule ESB 中添加异常处理。但是,我在一个流程中有多个服务调用,我想分别处理来自每个服务调用的异常。

是否可以在一个流程中拥有多个自定义异常策略?现在,我只能使用一个自定义异常策略,并且只有当我将它放在流的末尾,在最后一个出站端点之后。这是预期的行为。好的。但我想在一个流程中使用多种异常策略。

Mulesoft 文档说如果我们想使用多个异常策略,我们必须使用处理器链。我不确定它将如何转换为配置 XML。有什么指导吗?

【问题讨论】:

    标签: web-services exception-handling esb mule flow


    【解决方案1】:

    为此,您需要将不同的服务调用放在私有流程中。

    类似:

    <flow name="main">
        <inbound-endpoint ref="in" />
        <flow-ref name="sub1" />
        <flow-ref name="sub2" />
    </flow>
    
    <flow name="sub1" processingStrategy="synchronous">
        <!-- do something -->
        <custom-exception-strategy>
            <!-- sub1 specific -->
        </custom-exception-strategy>
    </flow>
    
    <flow name="sub2" processingStrategy="synchronous">
        <!-- do something -->
        <custom-exception-strategy>
            <!-- sub2 specific -->
        </custom-exception-strategy>
    </flow>
    

    【讨论】:

    • 哦,谢谢。经过几次试验后,我发现绝对没有办法在一个流程中放置多个异常策略。现在会尝试这种风格。不过,还有一件事。说,我在上面的私人流程 sub1 的会话范围内放置了一些东西。 (我如何)或(我可以)在下一个私有流程 sub2 中访问它吗?
    • 我已经测试并且可以确认在sub1中添加的会话属性在sub2中可用。取决于上下文,但访问此类会话属性的一种方法是使用表达式:#[header:SESSION:fromSub1]
    • 谢谢@David。我可以访问会话属性,就像你在那里展示的那样。现在,我还可以在 XSLT 转换器中访问它们,方法是将其作为上下文属性传递给转换器。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    相关资源
    最近更新 更多