Why is my Camel Netty route adding newlines to the start of my JMS messages?

好久不见. 提交于 2019-12-20 06:32:48

问题


I have a Camel Netty route that takes XML sent to a server port and places it in a JMS message. After the first message, every other message has a newline at the top of the message, causing my XML to fail to unmarshall when a GUI receives it.

My route look like this:

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

</route>

Note: The XML is not newline terminated, hence the need for a custom frame delimeter decoder.


回答1:


Try setting:

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

The problem is that camel-netty4 is adding a delimiter to your message because of the codec text, so it seems that it is putting a empty string at the end of your message.

You could also try to add autoAppendDelimiter to false. According to docs:

delimiter | LINE | The delimiter to use for the textline codec. Possible values are LINE and NULL

autoAppendDelimiter | true | Whether or not to auto append missing end delimiter when sending using the textline codec.

Cheers!

EDIT: Sorry, I was trying to answer your other question that was marked as duplicated. But maybe this answer also fits. Let me know.



来源:https://stackoverflow.com/questions/47372858/why-is-my-camel-netty-route-adding-newlines-to-the-start-of-my-jms-messages

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!