Java 连接到MongoDB时出错";过早到达流的末端”;
我正在运行一个spring引导应用程序,它连接到本地mongodb docker容器,并使用MongoRepository执行一些CRUD操作。但在启动应用程序时,我发现以下错误:Java 连接到MongoDB时出错";过早到达流的末端”;,java,mongodb,spring-boot,docker,Java,Mongodb,Spring Boot,Docker,我正在运行一个spring引导应用程序,它连接到本地mongodb docker容器,并使用MongoRepository执行一些CRUD操作。但在启动应用程序时,我发现以下错误: 2021-05-10 01:19:06.476 INFO 92347 --- [ main] com.hyperion.mongo.MongoDemoApplication : Starting MongoDemoApplication using Java 11.0.10 on XXXXXX
2021-05-10 01:19:06.476 INFO 92347 --- [ main] com.hyperion.mongo.MongoDemoApplication : Starting MongoDemoApplication using Java 11.0.10 on XXXXXX-MacBook-Pro.local with PID 92347 (/Users/XXXXXX/cloudmaker/mongo-demo/target/classes started by XXXXXXXXX in /Users/XXXXXXX/cloudmaker/mongo-demo)
2021-05-10 01:19:06.478 INFO 92347 --- [ main] com.hyperion.mongo.MongoDemoApplication : No active profile set, falling back to default profiles: default
2021-05-10 01:19:07.062 INFO 92347 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data MongoDB repositories in DEFAULT mode.
2021-05-10 01:19:07.114 INFO 92347 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 48 ms. Found 1 MongoDB repository interfaces.
2021-05-10 01:19:07.511 INFO 92347 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2021-05-10 01:19:07.524 INFO 92347 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2021-05-10 01:19:07.525 INFO 92347 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.43]
2021-05-10 01:19:07.597 INFO 92347 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2021-05-10 01:19:07.597 INFO 92347 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1077 ms
2021-05-10 01:19:07.759 INFO 92347 --- [ main] org.mongodb.driver.cluster : Cluster created with settings {hosts=[localhost:8082], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms'}
2021-05-10 01:19:07.818 INFO 92347 --- [-localhost:8082] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server localhost:8082
com.mongodb.MongoSocketReadException: Prematurely reached end of stream
at com.mongodb.internal.connection.SocketStream.read(SocketStream.java:112) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.SocketStream.read(SocketStream.java:131) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:648) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.receiveMessageWithAdditionalTimeout(InternalStreamConnection.java:513) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:356) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:280) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.CommandHelper.sendAndReceive(CommandHelper.java:83) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.CommandHelper.executeCommand(CommandHelper.java:33) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:107) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:62) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:144) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.lookupServerDescription(DefaultServerMonitor.java:188) ~[mongodb-driver-core-4.1.1.jar:na]
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:144) ~[mongodb-driver-core-4.1.1.jar:na]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
2021-05-10 01:19:08.179 INFO 92347 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2021-05-10 01:19:08.313 WARN 92347 --- [ main] ion$DefaultTemplateResolverConfiguration : Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)
2021-05-10 01:19:08.383 INFO 92347 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2021-05-10 01:19:08.393 INFO 92347 --- [ main] com.hyperion.mongo.MongoDemoApplication : Started MongoDemoApplication in 2.301 seconds (JVM running for 2.689)
pom.xml:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hyperion</groupId>
<artifactId>mongo-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mongo-demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
docker-compose.yml
version: '3.1'
services:
mongo:
image: mongo
restart: always
ports:
- 8082:8082
MongoDB服务器版本:4.4.5
我尝试使用不同的MongoDB版本来检查是否存在驱动程序兼容性问题,但这也不起作用。请提供帮助。mongo db的默认端口是27017,因此,在docker compose文件中,您应该将mongo的端口配置更改为
-8082:8082
version: '3.1'
services:
mongo:
image: mongo
restart: always
ports:
- 8082:8082