Apache Camel - 从netty到文件

时间:2014-09-04 23:10:54

标签: apache-camel netty

我使用netty组件进行两个系统之间的套接字通信,请求和 响应。

这是路线

<from uri="netty:tcp://localhost:61616?encoder=#encoder"/>
<to uri="netty:tcp://localhost:61618?decoder=#decoder"/>
<log message="Receive ${body}">
<to uri="file://data?fileName=data2&amp;charset=utf-8"/>

一切正常,我发送的数据是缓冲类型,以及收到的响应。我可以使用log $ {body}将此数据视为String,但文件中没有任何内容可用于存储此数据。

我猜测camel使用转换器(从缓冲区到字符串)将正文记录为纯文本,但为什么不在文件中保存某些内容,使用默认转换器为此????

我很感激有关如何解决这个问题的任何意见。谢谢!!!

1 个答案:

答案 0 :(得分:1)

由于您的paylaod是ByteBuffer,您需要显式转换为String或byte []

<from uri="netty:tcp://localhost:61616?encoder=#encoder"/>
<to uri="netty:tcp://localhost:61618?decoder=#decoder"/>
<convertBodyTo type="byte[]"/>
<log message="Receive ${body}">
<to uri="file://data?fileName=data2&amp;charset=utf-8"/>

您甚至可以使用type =&#34; java.lang.String&#34;

请参阅链接http://camel.apache.org/type-converter.html

希望它有所帮助...