2017-08-25 8 views
0

私は、EclipseでのMongoDBドライバ3.5.0を使用している、と私は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です。

編集:Mavenの代わりにgradle依存関係を使用してプロジェクトを大まかに再構築し、問題を解決しました。私は原因を見つけるためにそれを調べ続けます。以下

例コード:

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

これは、同様にあなたの実装に応じて、完全に罰金です。私はそれゆえ、上記のプロジェクトの構築プロセスを調査する時間を費やすだろう。

関連する問題