Wenn ich Byte-Array an Antwortkanal senden, erwarte ich, nur dieses Byte-Array an den Socket zu senden. Zum Beispiel im Frühjahr Integration ip.Spring-Integration IP - Wagenrücklauf ( r n) am Ende der Nachricht durch Sockets
@ServiceActivator(inputChannel = "serviceChannel")
public byte[] service(byte[] byteArray) {
return new byte[]{0,2,1,0};
}
Ich erwarte, dass es
00, 02, 01, 00
Aber senden! Dies sendet auch zwei zusätzliche Bytes an den Strom
00, 02, 01, 00 , 0D, 0A
für Ende der Nachricht. Ich möchte diese Bytes NICHT senden, d. H. Ich möchte sie weglassen. Wie kann dies erreicht werden?
Ich vermute, das hat damit zu tun, wie Sockets Nachrichten interpretieren, aber ich habe nicht gefunden, wo das passiert, egal wie ich es versuchte.
upd: Ich habe das Problem gefunden: Spring in meiner Konfiguration verwendet Klasse ByteArrayCrLfSerializer, aber ich muss ByteArrayRawSerializer verwenden. Wie kann ich das machen?
Bearbeiter erhalten keine Benachrichtigungen über Änderungen an der Frage; Sie sollten stattdessen meine Antwort kommentiert haben. Sie müssen Ihre Verbindungsfactory-Konfiguration anzeigen (bearbeiten Sie die Frage). Wenn Sie die XML-Konfiguration verwenden, verwenden Sie 'serializer =" raw "' wobei 'raw' ein' 'mit der Klasse' ByteArrayRawSerializer' ist. Wenn Sie Java-Konfiguration verwenden, legen Sie einfach den Serializer fest. –
Ich habe deine Antwort an diesem Punkt nicht gesehen :) danke – Sarief
@GaryRussell Ich denke, dass sollte zu Ihrer Antwort hinzugefügt werden, dann wird es abgeschlossen sein und ich werde es akzeptieren können, danke :) – Sarief