Java 我不明白为什么我总是得到com.mongodb.mongoscocketreadException:过早到达流的末尾

Java 我不明白为什么我总是得到com.mongodb.mongoscocketreadException:过早到达流的末尾,java,mongodb,tomcat,Java,Mongodb,Tomcat,试图弄明白为什么我总是得到例外,我将在下面展示 这是我的代码: CodecRegistry pojoCodecRegistry = fromRegistries(MongoClient.getDefaultCodecRegistry(), fromProviders(PojoCodecProvider.builder().automatic(true).build())); MongoClientOptions.Builder options_builder = new MongoClientO

试图弄明白为什么我总是得到例外,我将在下面展示

这是我的代码:

CodecRegistry pojoCodecRegistry = fromRegistries(MongoClient.getDefaultCodecRegistry(), fromProviders(PojoCodecProvider.builder().automatic(true).build()));
MongoClientOptions.Builder options_builder = new MongoClientOptions.Builder();
options_builder.maxConnectionIdleTime(60000);
MongoClientURI uri = new MongoClientURI("mongodb+srv://USERNAME:MYPASSWORD@database-yyc55.mongodb.net/test\n", options_builder);
MongoClient mongoClient = new MongoClient(uri);
MongoDatabase database = mongoClient.getDatabase("test");
database = database.withCodecRegistry(pojoCodecRegistry);
MongoCollection<AppUser> collection = database.getCollection("users", AppUser.class);
AppUser appUser = null;
String userName = null;
appUser = collection.find().first();
userName = facebook.getName();
CodecRegistry pojoCodecRegistry=fromRegistries(MongoClient.getDefaultCodecRegistry(),fromProviders(PojoCodecProvider.builder().automatic(true.build()));
mongoclientations.Builder选项_Builder=new mongoclientations.Builder();
选项_builder.maxConnectionIdleTime(60000);
MongoClientURI=新的MongoClientURI(“mongodb+srv://USERNAME:MYPASSWORD@数据库-yyc55.mongodb.net/test\n”,选项(U生成器);
MongoClient MongoClient=新的MongoClient(uri);
MongoDatabase=mongoClient.getDatabase(“测试”);
数据库=数据库。WithCodeRegistry(POJOCodeRegistry);
MongoCollection collection=database.getCollection(“users”,AppUser.class);
AppUser-AppUser=null;
字符串userName=null;
appUser=collection.find().first();
userName=facebook.getName();
正如您所看到的,我做了一些研究,并尝试将maxIdleConnection设置为60000毫秒,但仍然不断出现此异常。 奇怪的是,这段代码以前工作过,在一天不使用数据库之后,它开始发生了

例外情况:

com.mongodb.mongoscocketreadException:过早到达流的末尾 位于com.mongodb.connection.SocketStream.read(SocketStream.java:87) 位于com.mongodb.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:547) 在com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:418) 位于com.mongodb.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:290) 位于com.mongodb.connection.InternalStreamConnection.sendandereceive(InternalStreamConnection.java:255) 位于com.mongodb.connection.CommandHelper.sendAndReceive(CommandHelper.java:84) 位于com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:34) 位于com.mongodb.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:91) 在com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:51)上 位于com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:127) 在com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:114) 运行(Thread.java:748)


感谢您的帮助。

显然,问题是我的IP已更改,并且在服务器上,我不允许访问任何其他IP。 它解决了这个问题,但我无法解释为什么会出现“com.mongodb.mongoscocketreadexception:过早到达流的末尾”异常。 我还向我的代码中添加了OptionBuilder,正如您在上面的问题中所看到的