我正在尝试使用netty和camel发送整个文件的内容;
<camel:route>
<camel:from uri="file://test/?fileName=sample.txt&noop=true&delete=false"/>
<camel:convertBodyTo type="java.lang.String"/>
<camel:to uri="netty:tcp://localhost:9012?textline=true&sync=true"/>
</camel:route>
我在这个终点有另一条路线消耗:
<camel:route>
<camel:from uri="netty:tcp://localhost:9012?textline=true&sync=true"/>
<camel:process ref="fileCollector"/>
</camel:route>
FileCollector :: process()的交换似乎逐行包含数据 - 例如 - 如果文件的内容是
这是第一行
这是第二行
每行调用一次FileCollector :: process(),这对我来说非常困难,因为我的要求是处理整个文件并发送回复。
答案 0 :(得分:1)
您使用的是textline = true编解码器,它只是一行编解码器 - 终结符char是换行符。
要传输整个文件,您需要构建自己的编解码器,或使用任何内置的编解码器。
您需要更多地了解Netty编解码器如何做到这一点。