![](/img/trans.png)
[英]Could not initialize class com.mongodb.connection.MongoQueryAnalyzer using mongodb Java driver
[英]com.allanbank.mongodb Java Mongodb Async driver error - Could not bootstrap a connection to the MongoDB servers
我正在使用谷歌guice框架實現Web服務,在這里我注入了帶有構造函數的mongodb模塊來初始化mongodb連接。 在這里,對於我使用MongoClient的每種方法,我都會做一些事情,然后在獲得結果后關閉連接。 問題是,如果存在大量繁重的計算,則連接將關閉並且給出錯誤將無法引導連接錯誤。 請找到實現mongodb連接的方法,該方法將保持活動狀態或重新開始通信...
try{
MongoDBModule module = new MongoDBModule();
MongoClient mongoClient = module.getMongoDBClient();
MongoDatabase database = mongoClient.getDatabase(m_client.getDatabaseName());
MongoCollection collection = database.getCollection("CAMPUS_PROD");
//do stuff with mongoclient
mongoClient.close();
return document.resuls
}catch(IOException ie){
// print exception
}
像所有MongoDB驅動程序一樣,您不應按請求創建和關閉MongoClient。 相反,您想找到一種方法,在應用程序啟動時創建MongoClient,然后在應用程序退出時關閉它。
在您的情況下,我將讓您的Guice Binder創建MongoClient,然后執行bind(...)。toInstance(...)。 例如,
bind(MongoClient.class).toInstance(mongoClient);
在使用該MongoClient的類,你不應該調用close()。
當第一個請求觸發MongoClient以發現MongoDB集群並且我們無法創建與任何服務器的連接時,將導致“無法啟動”錯誤。 這很容易由打開和關閉MongoClient引起的連接抖動引起。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.