有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用Java的mongodb MongoTimeoutException。在获得问题之前没有任何更改

我面临着这个问题:

com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches com.mongodb.Mongo$4@11ad6cd. Client view of cluster state is {type=REPLICA_SET, servers=[{address=bastaproject-shard-00-01-vo5a5.gcp.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}, {address=bastaproject-shard-00-00-vo5a5.gcp.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}, {address=bastaproject-shard-00-02-vo5a5.gcp.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}]
    at com.mongodb.connection.BaseCluster.createTimeoutException(BaseCluster.java:389)
    at com.mongodb.connection.BaseCluster.selectServer(BaseCluster.java:108)
    at com.mongodb.Mongo.getConnectedClusterDescription(Mongo.java:887)
    at com.mongodb.Mongo.createClientSession(Mongo.java:877)
    at com.mongodb.Mongo$3.getClientSession(Mongo.java:866)
    at com.mongodb.Mongo$3.execute(Mongo.java:823)
    at com.mongodb.MongoCollectionImpl.executeCount(MongoCollectionImpl.java:215)
    at com.mongodb.MongoCollectionImpl.count(MongoCollectionImpl.java:183)
    at com.mongodb.MongoCollectionImpl.count(MongoCollectionImpl.java:178)
    at basta.telegram.MongoDAO.subscribed(MongoDAO.java:31)
    at basta.telegram.BastaBot.onUpdateReceived(BastaBot.java:55)
    at java.util.ArrayList.forEach(ArrayList.java:1249)
    at org.telegram.telegrambots.generics.LongPollingBot.onUpdatesReceived(LongPollingBot.java:27)
    at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$HandlerThread.run(DefaultBotSession.java:309)

我能够连接数据库并获取文档,但现在我做不到。在出现这个错误之前,我没有对代码进行任何更改

以下是我用来获取集合的代码:

MongoCollection<Document> collection = conexion.getDatabase().getCollection("users");

下面是连接方法:

MongoClientURI uri = new MongoClientURI(
                    "mongodb+srv://cagide_j:"mypassword"@bastaproject-vo5a5.gcp.mongodb.net/test?retryWrites=true&w=majority");
            this.mongoClient = new MongoClient(uri);
            this.database = mongoClient.getDatabase("bastaProject");

共 (1) 个答案

  1. # 1 楼答案

    确保您的Mongo数据库服务器正在运行,并且如果Mongo在另一台机器上运行(看起来是这样),则确保您已连接到internet。我不熟悉mongo。net,但许多数据库即服务或云中数据库服务具有只允许白名单上的IP地址连接的功能。我见过动态IP地址突然无法连接的问题。你也可以尝试增加超时时间

    如果没有更完整的代码,很难说得更多

    我经常发现这些问题很简单,但不一定容易找到