如何使用camel通过netty发送整个文件

时间:2013-11-26 04:31:41

标签: apache-camel netty

我正在尝试使用netty和camel发送整个文件的内容;

    <camel:route>
                <camel:from uri="file://test/?fileName=sample.txt&amp;noop=true&amp;delete=false"/>
                <camel:convertBodyTo type="java.lang.String"/>
                <camel:to uri="netty:tcp://localhost:9012?textline=true&amp;sync=true"/>        
    </camel:route>

我在这个终点有另一条路线消耗:

    <camel:route>
            <camel:from uri="netty:tcp://localhost:9012?textline=true&amp;sync=true"/>
            <camel:process ref="fileCollector"/>
    </camel:route>

FileCollector :: process()的交换似乎逐行包含数据 - 例如 - 如果文件的内容是

  

这是第一行

     

这是第二行

每行调用一次FileCollector :: process(),这对我来说非常困难,因为我的要求是处理整个文件并发送回复。

1 个答案:

答案 0 :(得分:1)

您使用的是textline = true编解码器,它只是一行编解码器 - 终结符char是换行符。

要传输整个文件,您需要构建自己的编解码器,或使用任何内置的编解码器。

您需要更多地了解Netty编解码器如何做到这一点。