Spring Boot测试环境中MongoDB连接拒绝的堆栈追踪来源排查求助
Spring Boot测试环境中MongoDB连接拒绝的堆栈追踪来源排查求助
我现在遇到个头疼的问题,想请教下各位大佬:
我维护的是一个 Spring Boot 3.4.2 应用,里面配置了多个数据库服务,其中包含MongoDB,而且有两个独立的MongoDB连接——各自用不同的凭据,访问不同的数据库实例。
现在我在用 @SpringBootTest 做测试,测试环境里用TestContainers来启动MongoDB,但每次跑测试都会抛出下面这个连接拒绝的堆栈信息。奇怪的是,当我用Docker Compose启动MongoDB的时候,应用连接完全正常,而且测试环境用的配置和Docker Compose环境的配置是完全一致的。
更困惑的是,这个堆栈信息只在测试环境出现,手动启动主应用做测试的时候根本不会报这个错,我完全找不到这个错误的来源是哪里。
下面是完整的堆栈日志:
2025-03-27T07:58:36.305Z INFO 110184 --- [my-app] [localhost:27017] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server localhost:27017 com.mongodb.MongoSocketOpenException: Exception opening socket at com.mongodb.internal.connection.SocketStream.lambda$open$0(SocketStream.java:85) ~[mongodb-driver-core-5.2.1.jar:na] at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:85) ~[mongodb-driver-core-5.2.1.jar:na] at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:233) ~[mongodb-driver-core-5.2.1.jar:na] at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitor.lookupServerDescription(DefaultServerMonitor.java:219) ~[mongodb-driver-core-5.2.1.jar:na] at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitor.run(DefaultServerMonitor.java:176) ~[mongodb-driver-core-5.2.1.jar:na] Caused by: java.net.ConnectException: Connection refused at java.base/sun.nio.ch.Net.pollConnect(Native Method) ~[na:na] at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:682) ~[na:na] at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542) ~[na:na] at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:592) ~[na:na] at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[na:na] at java.base/java.net.Socket.connect(Socket.java:751) ~[na:na] at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:76) ~[mongodb-driver-core-5.2.1.jar:na] at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:104) ~[mongodb-driver-core-5.2.1.jar:na] at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:79) ~[mongodb-driver-core-5.2.1.jar:na] ... 3 common frames omitted
备注:内容来源于stack exchange,提问作者Stewart
相关产品推荐
相关产品推荐

