为什么我的Camel Netty路由在我的JMS消息的开头添加换行符?

时间:2017-11-19 01:26:55

标签: apache-camel netty

我有一个Camel Netty路由,它将XML发送到服务器端口并将其放在JMS消息中。在第一条消息之后,其他每条消息都在消息顶部都有一个换行符,导致我的XML在GUI收到它时无法解组。

我的路线如下:

<route>
        <from uri="netty4:tcp://localhost:5150?decoders=#customFrameDelimeterDecoder,#string-decoder&amp;encoder=#string-encoder"/>
         <to uri="jms:topic:my.company.topic"/>

</route>

注意:XML不是换行符,因此需要自定义帧分隔符解码器。

1 个答案:

答案 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 |是的|使用文本编解码器发送时是否自动附加缺少的结束分隔符。

干杯!

编辑: 抱歉,我试图回答您标记为重复的其他问题。但也许这个答案也适合。让我知道。