我有一个Camel Netty路由,它将XML发送到服务器端口并将其放在JMS消息中。在第一条消息之后,其他每条消息都在消息顶部都有一个换行符,导致我的XML在GUI收到它时无法解组。
我的路线如下:
<route>
<from uri="netty4:tcp://localhost:5150?decoders=#customFrameDelimeterDecoder,#string-decoder&encoder=#string-encoder"/>
<to uri="jms:topic:my.company.topic"/>
</route>
注意:XML不是换行符,因此需要自定义帧分隔符解码器。
答案 0 :(得分:0)
尝试设置:
<from uri="netty4:tcp://localhost:5150?textline=true&delimiter=NULL"/>
问题是由于编解码器文本,camel-netty4
对您的邮件是adding a delimiter,所以它似乎在邮件末尾放置一个空字符串。
您还可以尝试将autoAppendDelimiter
添加为false。 According to docs:
分隔符 | LINE |用于文本编解码器的分隔符。可能的值为LINE和NULL
autoAppendDelimiter |是的|使用文本编解码器发送时是否自动附加缺少的结束分隔符。
干杯!
编辑: 抱歉,我试图回答您标记为重复的其他问题。但也许这个答案也适合。让我知道。