2017-08-25 67 views
0

我使用MongoDB的驅動器3.5.0使用Eclipse,我沒有錯誤的IDE,但是當我運行我的程序,我得到:BIRT Java驅動程序 - getDatabase noSuchMethod錯誤

Exception in thread "main" java.lang.NoSuchMethodError: com.mongodb.MongoClient.getDatabase(Ljava/lang/String;)Lcom/mongodb/client/MongoDatabase;

爲錯誤。我已經檢查過,我只通過Maven依賴項使用3.5.0。出於某種原因,所有之前獲取MongoClient的工作正常,只是getDatabase,這是行不通的。

編輯:我做了一個粗略的重建項目使用gradle依賴而不是Maven,並解決了這個問題。我會繼續研究它以找到原因。

如下代碼示例:

import org.bson.Document; 
import org.bson.types.ObjectId; 

import com.mongodb.BasicDBList; 
import com.mongodb.BasicDBObject; 
import com.mongodb.Block; 
import com.mongodb.DBCollection; 
import com.mongodb.DBCursor; 
import com.mongodb.DBObject; 
import com.mongodb.MongoClient; 
import com.mongodb.client.FindIterable; 
import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import static com.mongodb.client.model.Filters.*; 
import com.mongodb.client.model.CreateCollectionOptions; 
import com.mongodb.client.model.ValidationOptions; 


     public static Document reportFind(String id, String destination) { 

      ObjectId objectId = ObjectId.get(); 
      ObjectId provider_id = new ObjectId(id); 
      String provider_string = provider_id.toString(); 
      String db = "loginapp"; 

      MongoClient mongoClient = new MongoClient("localhost", 27017); 
      MongoDatabase database = mongoClient.getDatabase("loginapp"); 
      MongoCollection<Document> coll =   database.getCollection("reporttemplates"); 
      System.out.println("Connected to database successfully"); 
+0

*但是當我運行我的程序時,我在線程「main」中得到異常*你如何執行程序? – nullpointer

+0

這是在Eclipse IDE中運行的,我用驅動程序的Maven依賴項以及 –

+0

然後你可能想檢查你的IDE運行配置,因爲與其導入共享的類在'getDatabase'實現中看起來很好。 – nullpointer

回答

0

那麼根據mongodb's current documentation getDatabse的實現是:

public MongoDatabase getDatabase(String databaseName) 

Parameters: databaseName - the name of the database to retrieve

Returns: a MongoDatabase representing the specified database

Throws: IllegalArgumentException - if databaseName is invalid

這似乎完全沒根據您的實現,以及。因此,我會投入時間調查上述項目的構建過程。