0

Mule 3.3.1 社区版。

我想知道我是否在 Mule 中遗漏了一些简单的配置模式,这将允许我执行以下一般类型的过程。我希望一条消息从入站端点进来。然后,我想呼叫其他一些端点,例如路由确定服务,并根据该出站呼叫的结果,将原始消息……未更改……发送到第二个出站端点。

对路由服务的调用会更改原始消息。使用像窃听这样的结构似乎会带来排序问题。我可以通过复制所有的标头和有效负载来做到这一点,但是每次我需要它的时候编写代码都很乏味,而且阅读起来也很尴尬。我可以很简单地通过编写一个自定义转换器来将结果变量设置回消息上。

但是,有一些简单的“纯骡流”解决方案吗?它似乎有点类似于 http-proxy 模式构造的基本原理,不必手动将所有入站内容复制到出站。

4

1 回答 1

2

据我了解,它可以使用 mule 现有的处理器和转换器来实现。

从入站端点读取您的输入后

第 1 步:使用 Mule Messag Enricher,如下面的链接所述。通过这种方式,您可以调用出站并将出站的返回设置为流或会话变量,从而使您的有效负载不受干扰。

骡消息丰富器

第 2 步:然后您可以使用在扩充器中设置的流/会话变量来调用第二个出站。

场景的抽象流程是这样的。

<flow >
    <inbound-endpoint>       

     <enricher target="#[variable:myTempFlowVar]">
        <outbound call >
     </enricher>
    <choice>
        <when expression="#[flowVar['myTempFlowVar'] == 'Test']" >
            <outbound call 2>
        </when>
        <otherwise>
            <something else>
        </otherwise>
    </choice>
</flow>

希望这可以帮助。

于 2013-07-01T15:29:18.873 回答