Mule 3.3.1社区版。
我想知道我是否在Mule中遗漏了一些简单的配置模式,这些模式将允许我执行以下一般类型的过程。我希望消息从入站终结点传入。然后,我希望呼叫某个其他端点,例如路由确定服务,并根据该出站呼叫的结果,向原始message...unchanged...to发送第二个出站端点。
对路由服务的呼叫改变了原始消息。使用像wire-tap这样的构造似乎会带来排序问题。我可以通过复制所有的头和有效负载来做到这一点,但是每次我需要它的时候编写代码都太乏味了,而且读起来也很笨拙。我可以非常简单地编写一个自定义转换器,在消息上设置一个结果变量。
但是,有没有简单的“纯Mule-flow”解决方案呢?这似乎有点类似于http-proxy模式构造的基本原理,不必手动将所有入站内容复制到出站。
发布于 2013-07-01 23:29:19
据我所知,它可以使用mule现有的处理器和转换器来实现。
读取来自入站端点的输入之后
Step1:使用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>希望这能有所帮助。
https://stackoverflow.com/questions/17406627
复制相似问题