我使用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");
*但是当我运行我的程序时,我在线程“main”中得到异常*你如何执行程序? – nullpointer
这是在Eclipse IDE中运行的,我用驱动程序的Maven依赖项以及 –
然后你可能想检查你的IDE运行配置,因为与其导入共享的类在'getDatabase'实现中看起来很好。 – nullpointer