【问题标题】:Mule synchronous callout with message unchanged消息不变的骡同步标注
【发布时间】:2013-07-01 14:14:59
【问题描述】:

Mule 3.3.1 社区版。

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

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

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

【问题讨论】:

    标签: mule synchronous outbound


    【解决方案1】:

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

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

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

    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>
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 2016-09-16
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多