试图弄清楚为什么我总是在下面显示异常不适。
这是我的代码:
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();
如您所见,我已经进行了一些研究,并尝试将maxIdleConnection设置为60000 ms,但是,我仍然收到此异常。
奇怪的是,此代码在不使用数据库的一天之前和之后都可以正常工作。
例外:
com.mongodb.MongoSocketReadException:过早到达流的结尾
在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.sendAndReceive(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)
在java.lang.Thread.run(Thread.java:748)
谢谢你的帮助。
最佳答案
显然,问题在于我的IP已更改,并且在服务器上,我不允许访问任何其他IP。
它解决了它,但我无法解释为什么我得到了“ com.mongodb.MongoSocketReadException:过早到达流的末尾”异常。
正如您在上面的问题中所看到的,我还向我的代码中添加了选项生成器。