Apache camel 如何使用camel通过netty发送整个文件
我试图用netty和camel发送整个文件的内容Apache camel 如何使用camel通过netty发送整个文件,apache-camel,netty,Apache Camel,Netty,我试图用netty和camel发送整个文件的内容 <camel:route> <camel:from uri="file://test/?fileName=sample.txt&noop=true&delete=false"/> <camel:convertBodyTo type="java.lang.String"/>
<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()上的exchange似乎逐行包含数据,例如,如果文件的内容是
这是一号线
这是二号线
FileCollector::process()每行调用一次,这对我来说非常困难,因为我的要求是处理整个文件并发送回复。您使用的是textline=true编解码器,它是一个单行编解码器-终止符字符是换行符字符 要传输整个文件,您需要构建自己的编解码器,或者使用任何内置的编解码器,例如长度编解码器
您需要进一步研究Netty编解码器如何做到这一点。改进您的问题,因为如果您在问题中没有表现出努力,人们不希望/可以帮助您修改问题并提供更多详细信息,希望现在问题清楚了。我确实选择了编码器和解码器,但现在,我对这个错误感到震惊:“java.lang.IllegalArgumentException:无法为属性:解码器找到合适的setter,因为没有具有相同类型的setter方法:java.lang.String,也不可能进行类型转换:没有类型转换器可用于从类型:java.lang.String转换为所需类型:org.jboss.netty.channel.ChannelHandler,值为#eofDecoder”"; 看起来,Camel-Netty不会将bean名称强制转换为所需的类类型;我只使用spring dsl,所以我发现这很困难。如果您没有将spring xml与