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 に答える