2016-09-29 3 views
0

ich ein Federintegrationsprojekt über Annotationen mit der folgenden Konfiguration konfiguriert haben im Zusammenhang mit TCP:TCP-Nachrichten über ISO TCP/RFC 1006

@Bean 
public TcpReceivingChannelAdapter tcpIn(AbstractClientConnectionFactory connectionFactory) { 
    TcpReceivingChannelAdapter receiver = new TcpReceivingChannelAdapter(); 
    receiver.setOutputChannel(fromTcpReceiver()); 
    receiver.setConnectionFactory(connectionFactory); 
    return receiver; 
} 

@Bean 
public AbstractClientConnectionFactory clientFactory() { 
    TcpNetClientConnectionFactory factory = new TcpNetClientConnectionFactory(host, port); 
    factory.setSoKeepAlive(keepAlive); 
    factory.setSoTimeout(timeout); 
    return factory; 
} 

@Bean 
public TcpSendingMessageHandler tcpOut(AbstractClientConnectionFactory connectionFactory) {  
    TcpSendingMessageHandler sender = new TcpSendingMessageHandler(); 
    sender.setConnectionFactory(connectionFactory); 
    return sender; 
} 

Im Frühjahr Integration, was ist der beste Weg, TCP-Nachrichten über ISO einzukapseln TCP/RFC 1006?

Grundsätzlich fügt TCP ISO der ersten Verbindung einen Schritt hinzu, aber auch einen zusätzlichen Header für jede gesendete/empfangene TCP-Nachricht.

Ich habe die Dokumentation gelesen, aber ich weiß nicht, was der beste Weg für diese Art von Nachrichtenanreicherung und -verhandlung sein könnte. Ist dies mit Spring Integration möglich?

Ich habe 3 Ideen:

  • messageBuilderFactory
  • Serializer/Deserializer
  • TcpConnectionInterceptorFactoryChain

Jede Hilfe/example willkommen

Antwort

0

ich nicht an der RFC ausgesehen haben aber Sie werden wahrscheinlich eine Kombination aus benutzerdefinierten Serializer/Deserializer benötigen, sowie eine benutzerdefinierte TcpMessageMapper, um die Kopfzeile (n) zu/von Spring Integration-Nachrichtenkopfzeile (n) zuzuordnen.

Werfen Sie einen Blick auf die MessageConvertingTcpMessageMapper für ein Beispiel.

+0

Schließlich verwende ich einen benutzerdefinierten @Transformer. Dies liegt am Initiationsprozess – crm86