BIRT Java驱动程序 - getDatabase noSuchMethod错误

时间:2017-08-25 19:58:34

标签: java eclipse mongodb maven mongo-java-driver

我在Eclipse中使用mongodb-driver 3.5.0,我在IDE中没有错误,但是当我运行程序时,我得到:

  

线程中的异常" main" java.lang.NoSuchMethodError:   com.mongodb.MongoClient.getDatabase(Ljava /郎/字符串;)LCOM / mongodb的/客户/ 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");

1 个答案:

答案 0 :(得分:0)

根据mongodb's current documentation,getDatabse的实现如下:

public MongoDatabase getDatabase(String databaseName)
  

参数:       databaseName - 要检索的数据库的名称

     

返回:       表示指定数据库的MongoDatabase

     

抛出:       IllegalArgumentException - 如果databaseName无效

根据您的实施情况,这似乎完全没问题。因此,我会花时间调查上述项目的构建过程。