2013-11-12 3 views
1

У меня есть эта маленькая цепь компонентов в моем проекте Mule ESB:Mule ESB Groovy Unicode выходной вопрос

<set-payload value="Получена заявка ##[sessionVars['ticketID']]" doc:name="Set SMS Text"/> 
<scripting:transformer doc:name="Send SMS" ignoreBadInput="true"> 
    <scripting:script engine="Groovy"><![CDATA[ 
     new File("/tmp/groovy.out").withWriter { out -> 
      out.println message.payload 
     } 
    ]]></scripting:script> 
</scripting:transformer> 

Когда сообщение проходит эту цепочку в /tmp/groovy.out я могу видеть «Џолучена ЗАЯВКА # 4041» вместо ожидаемой «Получена заявка # 4041», т. е. возникает проблема с отображением символов unicode и проблем с символами ASCII нет.

Когда я проверяю /tmp/groovy.out с редактором HEX, я вижу, что все символы Russain имеют длину в 1 байт (в юникоде, длина которой должна быть 2 байта), то есть выход моего компонента Groovy не является unicode.

Нет проблем с выходом юникода в журнал Mule, когда пользовательские компоненты Echo и Logger. Также в компоненте SMTP все идеально: я успешно получаю письма в юникоде от Mule.

Вы можете помочь мне с выходом unicode в файл с Groovy в Mule ESB?

ответ

0

Вы можете попробовать:

new File("/tmp/groovy.out").withWriter('UTF-8') { out -> 
+0

Это хорошо! Спасибо! –

+0

@ НикитаПетров это сработало? :-) –

+0

Да, спасибо! –

Смежные вопросы