Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在TCP网关中发送响应后,在Spring集成中向serviceActivator发送消息_Java_Spring_Tcp_Spring Integration - Fatal编程技术网

Java 在TCP网关中发送响应后,在Spring集成中向serviceActivator发送消息

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

我的基于TCP网关的Spring集成应用程序运行良好。它接收来自TCP网关的请求消息,并将消息转发给serviceActivator以准备响应,然后将响应发送到客户端

我想在发送到客户端后将消息保存到数据库。我只是想知道在将响应发送到客户端之后,是否可以将消息转发给另一个serviceActivator

如果是,应如何设置spring配置? 在这方面,我将不胜感激

以下是spring上下文文件:

<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”
,将首先发送回复。