Java 在TCP网关中发送响应后,在Spring集成中向serviceActivator发送消息
我的基于TCP网关的Spring集成应用程序运行良好。它接收来自TCP网关的请求消息,并将消息转发给serviceActivator以准备响应,然后将响应发送到客户端 我想在发送到客户端后将消息保存到数据库。我只是想知道在将响应发送到客户端之后,是否可以将消息转发给另一个serviceActivator 如果是,应如何设置spring配置? 在这方面,我将不胜感激 以下是spring上下文文件:Java 在TCP网关中发送响应后,在Spring集成中向serviceActivator发送消息,java,spring,tcp,spring-integration,Java,Spring,Tcp,Spring Integration,我的基于TCP网关的Spring集成应用程序运行良好。它接收来自TCP网关的请求消息,并将消息转发给serviceActivator以准备响应,然后将响应发送到客户端 我想在发送到客户端后将消息保存到数据库。我只是想知道在将响应发送到客户端之后,是否可以将消息转发给另一个serviceActivator 如果是,应如何设置spring配置? 在这方面,我将不胜感激 以下是spring上下文文件: <beans> <int-ip:tcp-connection-factor
<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>
谢谢您可以为该
添加
作为输出频道
。其中一个订户将是
,以存储对数据库的回复。另一个订户应该是
,没有输出频道
,假设回复
但是是的,它是在发送给客户之前
为此,在执行super.serialize()
之后,您可以扩展序列化程序
并使用字节[]
执行所需的逻辑。您可以将order=“1”
与输出通道
一起放在网桥上(以及入站网关上的应答通道
)和order>=jdbc适配器上的“2”
,将首先发送回复。