在Mule中使用XML映射变换器

时间:2013-11-11 16:02:11

标签: mule

我正在尝试使用 jdbc-ee:xml-to-maps-transformer`

在下面的流程中,最终记录器的输出为空。我本来期望一个我可以在插入中使用的Map对象。

提供了一些文档

http://www.mulesoft.org/documentation/display/34X/JDBC+Transport+Reference#JDBCTransportReference-BasicInsertUpdateDelete

但没有帮助。网上的任何其他信息都非常稀少。

 <flow name="inserttinoDBFlow3" doc:name="inserttinoDBFlow3">
    <file:inbound-endpoint responseTimeout="10000" doc:name="File" moveToDirectory="src/test/resources/out" path="src/test/resources/in"/>
    <file:file-to-string-transformer doc:name="File to String"/>
    <logger message="#[message.payload] :::::::::::::::::::::::::::::::::::: after object to string:::::::::::::::::::::::::::::::::::" level="INFO" doc:name="Logger"/>
    <mulexml:object-to-xml-transformer doc:name="Object to XML"/>
    <logger message="#[message.payload] :::::::::::::::::::::::::::::::::::: after object to xml :::::::::::::::::::::::::::::::::::" level="INFO" doc:name="Logger"/>
    <jdbc-ee:xml-to-maps-transformer doc:name="XML to Maps"/>
    <logger level="INFO" doc:name="Logger" message="#[message.payload]"/>
</flow>

1 个答案:

答案 0 :(得分:1)

  

使用Object-to-XML转换器将Java Object转换为XML数据   使用XStream。

所以你在你的流中有消息有效负载中的String类型的Java对象,而tranformer只是在&lt; string&gt;中打包了这个String。节点和编码XML特定字符。在这种情况下,这不是我们想要的XML。

我从你的流中移除了对象到xml的变换器,它可以工作。

 <flow name="inserttinoDBFlow3" doc:name="inserttinoDBFlow3">
    <file:inbound-endpoint responseTimeout="10000" doc:name="File" moveToDirectory="src/test/resources/out" path="src/test/resources/in"/>
    <file:file-to-string-transformer doc:name="File to String" encoding="UTF-8"/>
    <logger message=" :::::::::::::::::::::::::::::::::::: after object to string::::::::::::::::::::::::::::::::::: #[message.payload]" level="INFO" doc:name="Logger"/>
    <jdbc-ee:xml-to-maps-transformer doc:name="XML to Maps"/>
    <logger level="INFO" doc:name="Logger" message="#[message.payload]"/>
</flow>

输入文件

<?xml version="1.0" encoding="utf-8"?>
<table>
  <record>
    <field name="id" type="java.math.BigDecimal">0</field>
    <field name="name" type="java.lang.String">hello</field>
  </record>
</table>

请记住:

  • xml-to-maps转换器仅适用于Mule Entreprise Edition;
  • 由xml-to-maps转换器转换的XML必须符合特定架构