【发布时间】:2020-04-08 11:09:21
【问题描述】:
我在语句 DBCursor.hasNext() 处收到“不与主服务器对话并重试用完”异常。
当我搜索时,得到了设置首选项的解决方案。我仍然遇到问题。
我的代码如下:
public void sampleTest() throws Exception
{
MongoClient client = new MongoClient("192.168.20.117", 27017);
DB database = client.getDB("CLME2ECORE");
boolean auth = database.authenticate("tecnotree", ("tecnotree").toCharArray());
DBCollection collection = database.getCollection("RegistrationRequest");
collection.setReadPreference(ReadPreference.primary());
BasicDBObject andQuery = new BasicDBObject("serviceRequest.serviceRequestSubtype.masterCode","RETPOSTREG");
andQuery.append("serviceRequest.serviceRequestStatus.masterCode", "PYMTPEND");
BasicDBObject andFields = new BasicDBObject("serviceRequest.customer.profileDetails.basicDetails.customerCode",1);
andFields.append("_id", 0);
DBCursor dbCursor = collection.find(andQuery);
DBObject dbObject;
dbCursor.setReadPreference(ReadPreference.primary());
if(dbCursor.hasNext())
{
dbObject = dbCursor.next();
String value = dbObject.get("serviceRequest.customer.profileDetails.basicDetails.customerCode").toString();
}
client.close();
}
我使用maven依赖作为
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>2.13.0</version>
</dependency>
请帮助解决这个问题。
【问题讨论】:
-
192.168.20.117是replicaSet的成员吗?如果是这样,你应该给一个副本集成员数组作为 MongoClient api.mongodb.com/java/2.10.1/com/mongodb/MongoClient.html 的参数
-
@hogan,谢谢它现在工作正常。