You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBootTest测试时MockServer抛出Connection refused连接拒绝问题

问题排查与解决方案

1 核心错误原因

你启动MockServer实例时绑定的是1080端口,但初始化MockServerClient时指定连接的是443端口,两者端口不一致,自然无法建立Socket连接。

2 基础修复步骤

  • 修改MockServerClient的端口参数,和启动端口保持一致:
    把代码里的new MockServerClient("localhost", 443)改为new MockServerClient("localhost", 1080)
  • 如果你确实需要MockServer监听443端口,直接修改启动代码的端口参数即可:mockServer = startClientAndServer(443);,注意443是系统特权端口,启动需要对应权限,更推荐用自定义高位端口。

3 额外排查项(修改端口后仍报错可核对)

  • 检查@BeforeClass修饰的方法是否符合规范:JUnit4的@BeforeClass要求方法必须是public static修饰,你当前的startServer方法没有加static修饰符,会导致MockServer根本没有启动,调整后代码如下:
private static ClientAndServer mockServer;

@BeforeClass
public static void startServer() {
    mockServer = startClientAndServer(1080);
}
  • 检查绑定端口是否被其他进程占用:
    Windows系统执行命令:netstat -ano | findstr "1080"
    Linux/macOS系统执行命令:lsof -i:1080
    如果端口被占用,要么关闭占用端口的进程,要么更换MockServer的启动端口。
  • 核对MockServer依赖版本是否存在冲突,排除依赖传递导致的类缺失、启动失败问题。

4 修复后完整代码示例

private static ClientAndServer mockServer;

@BeforeClass
public static void startServer() {
    mockServer = startClientAndServer(1080);
}

@Test
void downloadByUserShouldRetry() {
    // given
    new MockServerClient("localhost", 1080)
        .when(
            request()
                .withSecure(true)
                .withMethod("GET")
                .withPath("myUrl")
                .withHeader("Authorization", "Bearer " + adminAccessToken),
                exactly(1)
            )
            .respond(
                response()
                    .withStatusCode(401)
                    .withHeaders(
                        new Header("Content-Type", "application/json; charset=utf-8"),
                        new Header("Cache-Control", "public, max-age=86400")
                    )
                    .withBody("{ message: 'incorrect username and password combination' }")
                    .withDelay(TimeUnit.SECONDS,1)
            );
}

内容的提问来源于stack exchange,提问作者k-wasilewski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:36:04