0

我正在尝试使用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>
4

1 回答 1

1

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

因此,您在流程中的消息有效负载中有 String 类型的 Java 对象,并且转换器只是将这个 String 打包到 <string> 节点中并对 XML 特定字符进行编码。在这种情况下,这不是我们需要的 XML。

我从您的流程中删除了 object-to-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 必须符合特定模式
于 2013-11-12T17:11:30.690 回答