私は、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");
*私のプログラムを実行すると、スレッド「main」の例外が発生する*どのようにプログラムを実行するのですか? – nullpointer
これはEclipse IDEで実行していますが、私はドライバのMaven依存関係も使用しました。 –
あなたのIDE実行設定をチェックしたいかもしれません。そのクラスのインポートと共有されているクラスは 'getDatabase'実装に適しています。 – nullpointer