Mule - 使用 JAXB 对象 XML
Mule - Object To XML with JAXB
我正在使用 Mule 3.8 获取一些 JSON 数据,我将这些数据转为 Java,然后转为 XML 文件。一切正常,直到我的文件端点以灾难告终:
Message : Could not find a transformer to transform
"SimpleDataType{type=java.io.ByteArrayOutputStream, mimeType='text/xml',
encoding='null'}" to "SimpleDataType{type=java.io.InputStream,
mimeType='*/*', encoding='null'}".
Payload : <?xml version="1.0" encoding="UTF-8" standalone="yes"?><Header ....></Header>
Payload Type : java.io.ByteArrayOutputStream
..我得到的只是几十个空的 .xml 文件..
我想我必须以某种方式将我的有效负载转换为文件组件实际可以接收并转换为文件的内容,或者这是我必须在 Java 组件中手动执行的操作吗?
此致
编辑 - 忘记配置
<flow name="Product">
<file:inbound-endpoint path="C:\temp\fileIn" responseTimeout="10000" doc:name="File"/>
<logger message="#[payload != null]" level="INFO" doc:name="Logger"/>
<json:json-to-object-transformer returnClass="java.util.List" encoding="UTF-8" doc:name="JSON to ObjectList"/>
<collection-splitter doc:name="Collection Splitter"/>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
<custom-transformer returnClass="se.131.Product.Header" encoding="UTF-8" class="se.131.Tranformer.Map2Product" doc:name="MapToProduct" mimeType="application/xml"/>
<mulexml:jaxb-object-to-xml-transformer name="myMarshaller" jaxbContext-ref="JAXB_Context" doc:name="JAXB Object to XML" encoding="UTF-8" mimeType="application/xml"/>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
<file:outbound-endpoint path="C:\temp\fileOut" responseTimeout="10000" doc:name="File" outputPattern="Product-#[function:dateStamp].xml" mimeType="text/xml"/>
<catch-exception-strategy doc:name="Catch Exception Strategy">
<logger message="Oh no!!" level="INFO" doc:name="Logger"/>
</catch-exception-strategy>
</flow>
尝试将 <object-to-string-transformer>
放在文件出站端点之前并检查...
文件端点期望负载的字符串格式来创建文件
我正在使用 Mule 3.8 获取一些 JSON 数据,我将这些数据转为 Java,然后转为 XML 文件。一切正常,直到我的文件端点以灾难告终:
Message : Could not find a transformer to transform
"SimpleDataType{type=java.io.ByteArrayOutputStream, mimeType='text/xml',
encoding='null'}" to "SimpleDataType{type=java.io.InputStream,
mimeType='*/*', encoding='null'}".
Payload : <?xml version="1.0" encoding="UTF-8" standalone="yes"?><Header ....></Header>
Payload Type : java.io.ByteArrayOutputStream
..我得到的只是几十个空的 .xml 文件..
我想我必须以某种方式将我的有效负载转换为文件组件实际可以接收并转换为文件的内容,或者这是我必须在 Java 组件中手动执行的操作吗?
此致
编辑 - 忘记配置
<flow name="Product">
<file:inbound-endpoint path="C:\temp\fileIn" responseTimeout="10000" doc:name="File"/>
<logger message="#[payload != null]" level="INFO" doc:name="Logger"/>
<json:json-to-object-transformer returnClass="java.util.List" encoding="UTF-8" doc:name="JSON to ObjectList"/>
<collection-splitter doc:name="Collection Splitter"/>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
<custom-transformer returnClass="se.131.Product.Header" encoding="UTF-8" class="se.131.Tranformer.Map2Product" doc:name="MapToProduct" mimeType="application/xml"/>
<mulexml:jaxb-object-to-xml-transformer name="myMarshaller" jaxbContext-ref="JAXB_Context" doc:name="JAXB Object to XML" encoding="UTF-8" mimeType="application/xml"/>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
<file:outbound-endpoint path="C:\temp\fileOut" responseTimeout="10000" doc:name="File" outputPattern="Product-#[function:dateStamp].xml" mimeType="text/xml"/>
<catch-exception-strategy doc:name="Catch Exception Strategy">
<logger message="Oh no!!" level="INFO" doc:name="Logger"/>
</catch-exception-strategy>
</flow>
尝试将 <object-to-string-transformer>
放在文件出站端点之前并检查...
文件端点期望负载的字符串格式来创建文件