【发布时间】:2019-05-14 13:02:48
【问题描述】:
我应该与遗留系统交互,我必须使用 java/kotlin 中的 spring-integration 设置 TCP 客户端,以向 TCP 系统发送消息并接收其响应,解析此响应并将其发送给其他客户端通过 REST。我浏览了许多文档和博客,其中介绍了如何通过 xml 进行操作。无法为所有内容找到相应的注释。任何代码 sn-p 都会很有帮助。
@Service
class MyService{
@Autowired
MyGateway gateway;
public String callTCPClient(String msg){
return gateway.exchange(msg);
}
}
interface MyGateway{
String exchange (String msg)
}
【问题讨论】:
-
请参阅this answer 了解客户端和服务器的 DSL 示例。
-
@GaryRussell 我看到了你的帖子。我没明白几件事。如果我错了,请纠正我,我创建了一个接口并将其标记为网关(MyGateway.java),这样当我们调用该接口方法时,spring 知道它必须将该消息发送给客户端。我在您的代码中不明白的是,当我们收到客户端的响应时,它本身正在转换那里的代码。如果我有更复杂的转换,我该怎么办?如果我想调用位于单独服务类中的方法怎么办?你能简单地给我解释一下吗?
-
@GaryRussell 还有我如何告诉入站网关监听我通过出站网关发送的请求的响应?
-
看我的回答;我不明白您第二条评论中的问题。
-
@GaryRussell 我在第二条评论中的意思是,当我们声明一个服务器连接来接收响应时,如何告诉它监听刚刚通过 TCP 客户端发送的请求的响应?在 spring 文档中给出了'出站通道适配器使用客户端连接工厂,但您也可以提供对客户端连接工厂的引用到入站通道适配器。该适配器接收在出站适配器创建的连接上接收到的任何传入消息。您能告诉我如何实现这一目标吗?
标签: spring-boot tcp spring-integration spring-integration-dsl