Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mule 消息拆分器_Mule_Esb - Fatal编程技术网

Mule 消息拆分器

Mule 消息拆分器,mule,esb,Mule,Esb,我需要将一条消息拆分为3个不同的有效负载,然后转换并发送到3个路由器。因此,负载最初将有一个页眉、正文或细节以及一个页脚。这3个不同的有效载荷需要提取并发送到3个不同的路由器。最有效的方法是什么。这取决于您的身体/有效载荷类型。如果有效负载是XML,则可以使用xpath轻松拆分它,并使用基于内容的路由对其进行路由,类似于: <splitter expression="#[xpath('//nodes/node)']" /> <choice>

我需要将一条消息拆分为3个不同的有效负载,然后转换并发送到3个路由器。因此,负载最初将有一个页眉、正文或细节以及一个页脚。这3个不同的有效载荷需要提取并发送到3个不同的路由器。最有效的方法是什么。

这取决于您的身体/有效载荷类型。如果有效负载是XML,则可以使用xpath轻松拆分它,并使用基于内容的路由对其进行路由,类似于:

<splitter expression="#[xpath('//nodes/node)']" />
        <choice>
            <when expression="#[xpath('//node/id').text ='myid']">
                <!-- Route somewhere -->
            </when>
            <otherwise>
                <!-- Route somewhere else -->
            </otherwise>
        </choice>

上面的表达式拆分器可以使用任何MEL表达式拆分负载。还有许多其他拆分器,例如,如果您的负载已经是一个java集合,您只需使用集合拆分器即可

其他拆分器信息可在此处找到:


如果您还需要异步处理消息,还有其他路由器可以帮助您使用fork和join模式。关于这一点,这里有一个好帖子:

在最新版本的mule中,这种嵌套选择的splt是否仍然可行?当我尝试上述操作时,会出现与模式相关的错误。