java - 使用关联消息进行与旧服务器的 TcpOutboundGateway 连接的正确方法是什么

标签 java spring-boot spring-integration

我的理解是 TcpOutboundGateway 关联 tcp 请求和响应,但我不确定如何使用它。

下面的代码片段通过 TcpOutboundGateway 发送消息以与旧系统通信。

message = new GenericMessage("ccs?cmd=5&itm="+(16600+t)+"&rf=2");
Test.sendChannel.send(message); // sendChannel is a DirectChannel. 
//Blocks here until reply comes in (in single use and cached)

我有一个端点来处理响应:

@ServiceActivator(inputChannel = "replyChannel")
public void handleReply(byte[] rawRes) {
    // handle the reply.
}

handleReply(...) 需要代码中发送点可用的上下文,反之亦然。使用 Threadlocal 将上下文传递给处理程序可以(在本例中),但似乎是一个坏主意。

我已经看过这些示例,但它们似乎与我的代码相当不同(我认为是因为我使用的是 Spring boot),所以提前道歉 - 我确信我忽略了显而易见的事情,但希望得到一些帮助。

最佳答案

您可以在 RequestMessageMessageHeaders 中携带上下文,并且 replyMessage 将随请求的 header 一起提供。

对于 replyChannel 上的 POJO 处理程序,您可以使用 @Header("myContext") 添加另一个方法参数。

关于java - 使用关联消息进行与旧服务器的 TcpOutboundGateway 连接的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30306425/

相关文章:

Spring 集成单元测试出站 channel 适配器

spring-integration - 如何使用 jdbc-outbound-channel-adapter 过滤 Spring Integration 流?

java - JTextField 需要留空并且搜索时不区分大小写

threadpool - Spring中最大(客户端请求)线程池大小

javascript - CORS 不适用于 jQuery 和 Java

java - 无法从位置 [META-INF/spring.factories] 加载工厂

java - Spring Boot 与 Flyway 集成 - init order

java - 如何将我的返回方法与这段代码结合起来? (Java、Eclipse)

java - 无法检查数组中的所有元素

javascript - 如何在selenium中打印页面并关闭打印窗口