2017-11-19 1 views
0

Ich habe eine Camel Netty-Route, die XML an einen Server-Port gesendet und in einer JMS-Nachricht platziert. Nach der ersten Nachricht hat jede andere Nachricht einen Zeilenumbruch am Anfang der Nachricht, was dazu führt, dass mein XML nicht mehr entpackt werden kann, wenn eine GUI sie empfängt.Warum fügt meine Camel Netty-Route neue Zeilen zum Start meiner JMS-Nachrichten hinzu?

Mein Weg sieht wie folgt aus:

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

</route> 

Hinweis: Die XML ist Newline nicht beendet, daher die Notwendigkeit für einen delimeter Decoder kundenspezifischen Rahmen.

+0

Warum fügen Sie kein Protokoll hinzu, um zu sehen, wie es vor dem JMS-Endpunkt aussieht? Und verwenden Sie einen JMS-Client, um die Warteschlange zu durchsuchen und zu sehen, wie es aussieht. –

+0

Ich habe das versucht, es gibt keine weiße Linie im Protokoll. – JSS

+0

Und Sie haben Ihren JMS-Endpunkt erstellt? –

Antwort

0

Try Einstellung:

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

Das Problem ist, dass camel-netty4adding a delimiter wegen des Codec Textes zu Ihrer Nachricht ist, so scheint es, dass es am Ende Ihrer Nachricht eine leere Zeichenkette setzen. Sie können auch versuchen, autoAppendDelimiter zu false hinzuzufügen. According to docs:

Begrenzer | LINE | Das für den Textzeilencodec zu verwendende Trennzeichen. Mögliche Werte sind LINE und NULL

autoAppendDelimiter | wahr | Gibt an, ob beim Senden mit dem Textzeilen-Codec das fehlende Ende-Trennzeichen automatisch angehängt wird.

Prost!

EDIT: Sorry, ich habe versucht, Ihre andere Frage zu beantworten, die als dupliziert markiert wurde. Aber vielleicht passt diese Antwort auch. Gib mir Bescheid.

Verwandte Themen