Meine Spring Integration-Anwendung auf TCP-Gateway gebaut funktioniert gut. Er nimmt eine Anforderungsnachricht, die zu dem TCP-Gateway kommt, und leitet die Nachricht zur Vorbereitung der Antwort an serviceActivator weiter, und die Antwort wird an den Client gesendet.Senden von Nachricht an ServiceActivator in Spring Integration nach dem Senden der Antwort im TCP-Gateway
Ich möchte die Nachricht in der Datenbank nach dem Senden an den Client speichern. Ich frage mich nur, ob ich die Nachricht an einen anderen ServiceActivator weiterleiten kann, nachdem ich die Antwort an den Client gesendet habe.
Wenn ja, wie sollte die Federkonfiguration eingerichtet werden? Ich würde jede Hilfe in dieser Hinsicht schätzen. Hier
ist die Feder Kontextdatei:
<beans>
<int-ip:tcp-connection-factory id="crLfServer"
type="server"
port="${availableServerSocket}"
single-use="true"
so-timeout="10000"
using-nio="false"
serializer="connectionSerializeDeserialize"
deserializer="connectionSerializeDeserialize"
/>
<bean id="connectionSerializeDeserialize" class="org.springframework.integration.ip.tcp.serializer.ByteArrayStxEtxSerializer"/>
<int-ip:tcp-inbound-gateway id="gatewayCrLf"
connection-factory="crLfServer"
request-channel="serverBytes2StringChannel"
error-channel="errorChannel"
reply-timeout="10000"/> <!-- reply-timeout works on inbound-gateway -->
<int:channel id="toSA" />
<int:service-activator input-channel="toSA"
ref="myService"
method="prepare"/>
<int:object-to-string-transformer id="serverBytes2String"
input-channel="serverBytes2StringChannel"
output-channel="toSA"/>
<int:transformer id="errorHandler"
input-channel="errorChannel"
expression="payload.failedMessage.payload + ':' + payload.cause.message"/>
</beans>
Danke
Sie können 'order =" 1 "' auf die Bridge setzen (zusammen mit einem 'output-channel', der 'Antwortkanal' auf dem eingehenden Gateway) und' order = "2" 'auf dem jdbc-Adapter und die Antwort wird zuerst gesendet. –