【问题标题】:Why is my Camel Netty route adding newlines to the start of my JMS messages?为什么我的 Camel Netty 路由在 JMS 消息的开头添加换行符?
【发布时间】:2017-11-19 01:26:54
【问题描述】:

我有一个 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 不是换行符终止的,因此需要自定义帧分隔符解码器。

【问题讨论】:

  • 为什么不添加一个日志来看看它在 jms 端点之前的样子?并使用 jms 客户端浏览队列并查看其外观。
  • 我试过了,日志里没有白线。
  • 你浏览了你的 jms 端点?

标签: apache-camel netty


【解决方案1】:

尝试设置:

    <from uri="netty4:tcp://localhost:5150?textline=true&delimiter=NULL"/>

问题是 camel-netty4adding a delimiter 到您的消息,因为编解码器文本,所以它似乎在您的消息末尾放置了一个空字符串。

您也可以尝试将autoAppendDelimiter 添加为false。 According to docs:

分隔符 |线 |用于文本行编解码器的分隔符。可能的值为 LINE 和 NULL

autoAppendDelimiter |真实 |使用 textline 编解码器发送时是否自动附加缺少的结束分隔符。

干杯!

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多