Я запускаю поток в Mule CE и у меня огромные проблемы с кодировками. Независимо от того, что я делаю, мои файлы заканчиваются испорченными неанглийскими символами.
До преобразования jaxb-object-to-xml моя полезная нагрузка выглядела хорошо в консоли и в отладчике, но после этого все испортилось.
......
<http:request>
<object-to-byte-array-transformer encoding="UTF-8" doc:name="Object to Byte Array"/>
<object-to-string-transformer doc:name="String" encoding="UTF-8"/>
<json:json-to-object-transformer returnClass="java.util.List" doc:name="JSON2ObjectList" encoding="UTF-8"/>
<collection-splitter doc:name="Collection Splitter"/>
<choice doc:name="Choice">
<when expression="....">
<custom-transformer returnClass="se.system.Order.SalesHeader" class="se.system.Transformer.Map2Order" doc:name="Map2Order" mimeType="application/xml" encoding="UTF-8"/>
<mulexml:jaxb-object-to-xml-transformer name="orderMarshaller" jaxbContext-ref="JAXB_Context" doc:name="orderMarshaller" mimeType="text/xml" encoding="UTF-8"/>
<object-to-string-transformer doc:name="XML2String" encoding="UTF-8"/>
<set-variable variableName="fileName" value="order-#[function:dateStamp].xml" doc:name="fileName" encoding="UTF-8"/>
<file:outbound-endpoint path="${file.ToOrder}" responseTimeout="10000" doc:name="File" outputPattern="#[fileName]" mimeType="text/xml" encoding="UTF-8"/>
После преобразования jaxb неанглийские символы выглядят так:
Deliveryinfo2="å ä ö Å Ä Ö & % è É"/
И редактор 010 утверждает, что это ANSI DOS (с перепутанными символами, хотя не знаю, стоит ли этому доверять). Я что-то пропустил в преобразователе jaxb? или где-то еще? Можно ли заменить его компонентом Java, инициировать мой собственный контекст JAXB, получить маршаллер и обработать его самостоятельно? Никаких намеков больше...
С уважением
РЕДАКТИРОВАТЬ: этот может обрабатывать неанглийские символы
<mulexml:object-to-xml-transformer doc:name="Object to XML" encoding="UTF-8" />
но не типы GregorianCalendar или мой основной список объектов других объектов, так что это не альтернатива