Приложение для интеграции Spring, основанное на TCP-шлюзе, работает хорошо. Он принимает запрос сообщения, поступающего на шлюз TCP, и пересылает сообщение serviceActivator для подготовки ответа и ответ отправляется клиенту.Отправка сообщения serviceActivator в Spring Интеграция после отправки ответа в шлюзе TCP
Я хочу сохранить сообщение в базу данных после отправки клиенту. Мне просто интересно, могу ли я переслать сообщение другому сервисному агенту после отправки ответа клиенту.
Если да, как настроить весеннюю конфигурацию? Буду признателен за любую помощь в этом отношении.
Вот пружинный контекст файла:
<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>
Спасибо
Вы можете поместить «порядок =» 1 «на мост» (вместе с «выходным каналом», который является «каналом ответа» на входящем шлюзе) и 'order =" 2 "' на адаптере jdbc и ответ будет отправлен первым. –