2015-02-11 32 views
2
,而我試圖讀取從MongoDB中我得到這個異常數據

java.lang.IllegalStateException:開放

java.lang.IllegalStateException: open 
    at org.bson.util.Assertions.isTrue(Assertions.java:36) 
    at com.mongodb.DBTCPConnector.isMongosConnection(DBTCPConnector.java:369) 
    at com.mongodb.Mongo.isMongosConnection(Mongo.java:645) 
    at com.mongodb.DBCursor._check(DBCursor.java:454) 
    at com.mongodb.DBCursor._hasNext(DBCursor.java:546) 
    at com.mongodb.DBCursor.hasNext(DBCursor.java:571) 
    at com.calsoftlabs.mongo.client.impl.ReadingData.main(ReadingData.java:93) 

mycode的

public static DBCursor firstRecord(String ip) throws Exception { 

     DBObject query = new BasicDBObject("client_ip", ip); 

     DBCollection collection = getConnection(); 

     DBObject obj = new BasicDBObject("_id", 1); 

     DBCursor cursor = collection.find(query).sort(obj).limit(1); 

     mongo.close(); 

     return cursor; 

    } 
    DBCursor cursor = ReadingData.firstRecord(ip); 

        while (cursor.hasNext()) { 

         cursor.next(); 

         myList.add(new BasicDBObject("client_ip", (String) cursor.curr().get(
           "client_ip")).append("timestamp", 
           (String) cursor.curr().get("timestamp")).append("total_traffic", 
           (String) cursor.curr().get("total_traffic"))); 

        } 

通過使用上面的代碼我讀取Mongodb中記錄集的第一條記錄,但是引起IllegalStateException的行cursor.hasNext()。請建議我如何解決這個問題..

+1

這'mongo.close();'是可疑的,你想後,使用DB ... – 2015-02-11 06:28:26

+0

又見HTTPS://jira.mongodb .ORG /瀏覽/ JAVA-1251 – 2015-02-11 06:31:54

回答

2

這就是爲什麼你叫mongo.close(); befor要求cursor.hasNext())。從firstRecord 取出mongo.close();和你的循環後,將其添加

相關問題