Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

mongodb Java Driver build error : cannot access com.mongodb.client.result.InsertOneResult, class file not found

Tags:

java

mongodb

I'm following the Installation and Quick Start on the latest (4.2.2) Mongodb Java drivers. I'm getting this compile error:

Error:(29, 29) java: cannot access com.mongodb.client.result.InsertOneResult class file for com.mongodb.client.result.InsertOneResult not found

This is part of a larger project, so could there be another version of mongo somewhere on the class path?
There is only one the pom, and it is this, straight from the Installation page:

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver-sync</artifactId>
    <version>4.2.2</version>
</dependency>

I'm using IntelliJ, and in it's External Dependencies for mongo, it has these:

org.mongodb:bson:3.8.2
org.mongodb:mongodb-driver-core:3.8.2
org.mongodb:mongodb-driver-sync:4.2.2

Here's the code :

import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

import java.util.Arrays;

public class MongoTest {

    public static void main(String[] args) {
        MongoTest mongoTest = new MongoTest();
        mongoTest.init();
    }

    public void init() {
        MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
        MongoDatabase myTestDb = mongoClient.getDatabase("myTestDb");
        MongoCollection<Document> collection = myTestDb.getCollection("test");

        Document doc = new Document("name", "MongoDB")
                .append("type", "database")
                .append("count", 1)
                .append("versions", Arrays.asList("v3.2", "v3.0", "v2.6"))
                .append("info", new Document("x", 203).append("y", 102));

        collection.insertOne(doc);
    }
}
like image 511
user26270 Avatar asked Sep 04 '25 03:09

user26270


1 Answers

You need all three dependencies, but they should all be the same version, e.g.

  • org.mongodb:bson:4.2.2
  • org.mongodb:mongodb-driver-core:4.2.2
  • org.mongodb:mongodb-driver-sync:4.2.2

If you take a dependency only on mongodb-driver-sync, the others should be picked up transitively. But it sounds like there is a conflict somewhere which is causing you to pick up older versions of bson and mongodb-driver-core. You will need to determine where that conflict is coming from and address it.

like image 120
jyemin Avatar answered Sep 05 '25 19:09

jyemin