web-dev-qa-db-fra.com

Comment résoudre ClassNotFoundException: com.mongodb.connection.BufferProvider?

J'essaie d'écrire du code Java simple qui montre les collections MongoDB sur la console. J'ai ajouté mongodb-driver-3.0.0.jar dans mon classpath.

Mais quand j'essaye d'exécuter le code, il me donne l'erreur suivante sur la ligne de connexion à la base de données:

Exception dans le fil "principal" Java.lang.NoClassDefFoundError: com/mongodb/connection/BufferProvider à com.chintan.app.MongoDbJdbc.main (MongoDbJdbc.Java:12) Causée par: Java.lang.ClassNotFoundException: com.mongodb.connection.BufferProvider à Java.net.URLClassLoader $ 1.run (Source inconnue) à Java.net.URLClassLoader $ 1.run (Source inconnue) à Java.security.AccessController.doPrivileged (Native Method) à Java.net.URLClassLoader.findClass (Source inconnue) à Java.lang.ClassLoader.loadClass (Source inconnue) à Sun.misc.Launcher $ AppClassLoader.loadClass (Source inconnue) à Java.lang.ClassLoader.loadClass (Source inconnue) ... 1 de plus

Voici l'extrait de code:

public static void main(String[] args) 
    {
        MongoClient mongoClient = new MongoClient("localhost", 27017); //Exception

        @SuppressWarnings("deprecation")
        DB db = mongoClient.getDB("mydb");
        System.out.println("Database connection successfull.");
        ...
        ...
    }

Quel est le problème ici? Dois-je ajouter un autre fichier jar dans classpath ou existe-t-il un problème de version?

12
Chintan Patel

Sur la page du pilote mongo ici: http://mongodb.github.io/mongo-Java-driver/3.0/driver/getting-started/installation-guide/#mongodb-driver

Vous verrez le texte suivant:

Note: mongodb-driver nécessite les dépendances suivantes: bson et mongodb-driver-core

Donc, vous avez besoin de tous les pots suivants pour que cela fonctionne:

mongodb-driver-3.0.1.jar, mongodb-driver-core-3.0.1.jar, bson-3.0.1.jar

Ce fichier peut être téléchargé ici: https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver/3.0.1/https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver-core/3.0.1/https://oss.sonatype.org/content/repositories/releases/ org/mongodb/bson/3.0.1/

32
bpulito

Le pilote Java suivant contient la classe BufferProvider:

http://mvnrepository.com/artifact/org.mongodb/mongo-Java-driver/3.0.0

2
Giancarlo Romeo

Cette classe est dans le fichier jar mongodb-driver-core-3.0.0 qui est requis par mongodb-driver-3.0.0.jar. Vous pouvez voir les dépendances des pilotes Java dans le fichier POM associé à ce fichier .jar.
Je pense que vous devez utiliser un gestionnaire de dépendances pour ajouter automatiquement des dépendances transitives MongoDB (et autres composants) à votre projet (maven, gradle, ...).

0
Sylvain Bugat

Si vous n'avez pas de projet maven, incluez simplement mongo-Java-driver-3.6.1.jar (ce fichier est uniquement pour Java) dans votre projet, sans avoir à inclure d'autres fichiers.

0
John Ajith A