2013-07-01 42 views
0

骡3.3.1社区版。骡同步标注消息不变

我想知道如果我在Mule中遗漏了一些简单的配置模式,这将允许我执行以下一般类型的过程。我想要一个来自入站端点的消息。然后,我想呼叫某个其他端点(如路由确定服务),并根据该出站呼叫的结果将原始消息...不变...发送给第二个出站端点。

对路由服务的呼叫改变了原始消息。使用类似线头的结构似乎会造成排序问题。我可以通过复制所有的头文件和有效载荷来完成,但是每次需要时都要编写繁琐的代码,而且读起来很尴尬。我可以很简单地通过编写一个自定义转换器来设置结果变量。

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

回答

2

根据我的理解,它可以使用mule现有的处理器和变压器来实现。在下面的链接解释使用骡子Messag浓缩塔:

读你从入站端点

第一步输入后。 通过这种方式,您可以调用出站并将出站回程设置为流或会话变量,从而保持有效负载不受干扰。

Mule Message 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> 

希望这会有所帮助。

+0

谢谢。这是可行的。 – Tad