首页 > 解决方案 > 一旦在 Spring 中调用 Endpoint,如何创建一个侦听客户端连接并打开套接字的套接字服务器?

问题描述

我有一个应用程序可以打开打印机的“HttpURLConnection”。打印机正在侦听套接字连接,并在应用程序端打开新的 TCP 套接字连接时建立连接(在这种情况下,通过新的“HttpURLConnection”)。现在,我想模拟这台打印机。

在应用程序中,对打印机服务器进行 Http 调用,并在应用程序和服务器之间建立套接字连接。如何将此打印机模拟为弹簧启动应用程序。

标签: springspring-boottcpspring-integrationserversocket

解决方案


听起来你需要看看 Spring Test Framework,尤其是它关于 Web 的部分:https ://docs.spring.io/spring/docs/5.2.0.RELEASE/spring-framework-reference/testing.html# spring-mvc-测试客户端

我真的会研究通过 aRestTemplate而不是直接进行交互的可能性HttpURLConnection,然后将其MockRestServiceServer用于模拟请求和响应。

另一种方法是使用@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)并实现具有适当映射和可能返回结果的控制器。这样你就可以使用上面提到HttpURLConnection的连接到随机分配的 HTTP 服务器端口,并像在生产中一样执行请求。


推荐阅读