【发布时间】:2023-03-16 15:25:02
【问题描述】:
我有一个使用 HTTP 连接器的 Mule ESB 项目,我想使用 XPath 来拆分/路由 XML。
HTTP 连接器之后的消息负载是 org.glassfish.grizzly.utils.BufferInputStream。
将其转换为我可以使用诸如“拆分器”或“表达式”(使用 XPath)之类的组件来拆分/路由它的类型的最佳方法是什么?
“对象到 XML”似乎不起作用,并且当负载是字符串时(即在 HTTP 之后使用对象到字符串),拆分器不起作用。如果有标准组件可以做到这一点,我宁愿不编写自定义 Java 转换器?
流程
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<file:connector name="File" autoDelete="true" streaming="true" validateConnections="true" doc:name="File"/>
<flow name="collectionsplitterFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/CollectionSplitter" doc:name="HTTP"/>
<splitter expression="#[xpath3('//Order')]" doc:name="Splitter"/>
<logger level="INFO" doc:name="Logger"/>
</flow>
要拆分的 XML
<?xml version="1.0" encoding="UTF-8"?>
<msglist>
<msg>
<Order>
<Id>1</Id>
<Description>Order 1</Description>
</Order>
</msg>
<msg>
<Order>
<Id>2</Id>
<Description>Order 2</Description>
</Order>
</msg>
</msglist>
谢谢 大卫
【问题讨论】:
标签: mule mule-studio