2015-06-12 2 views
8

Я использую mongodb java driver 3.0.2 (я пробовал 3.0.1 и 3.0.0, но получаю ту же ошибку).Ошибка с mongoDB java driver

Это ошибка, которую я получаю: Тип org.bson.Document не может быть разрешен. Это косвенно ссылается из требуемых .class файлов

Это происходит на второй строке следующего кода:

MongoDatabase db = mongoClient.getDatabase("db"); 
db.getCollection(""); 

Как я понимаю, вторая линия использует код, который существует в org.bson.Document и ханжества Найди это. Но где я могу его найти?

************** EDIT ************ Я знаю, что добавлен баннер bson, и у него есть пакет org.bson, но нет org.bson.Document класс в этом пакете ...

+0

Вы уверены, что вы используете драйвер Монго Java, который содержит несколько библиотек, а не драйвер MongoDB для Ява? см. мой ответ ниже. – NDB

ответ

0

Вы должны проверить, если этот пакет находится в пути к классам: http://api.mongodb.org/java/current/org/bson/package-summary.html

+0

Я добавил bson-2.9.0-rc1.jar в путь сборки, но получаю ту же ошибку ... – user2014377

+0

Ну, это действительно странно ... Вы уверены, что он включен в classpath? – pinturic

+0

Да, это так. Класс Document просто не существует ... Я понятия не имею, почему – user2014377

0

Вам нужно будет скачать библиотеку BSON (v3.0.2) и добавить его в свой classpath: https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/3.0.2/bson-3.0.2.jar

+0

Пожалуйста, позаботьтесь: в то время как 3.0.2 не является последней версией, пожалуйста, проверьте фактическую версию на https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/ – NDB

4

Класс документа существует с 3.0.0, а не в банке MongDB, он находится в файле баннера BSON. Вы можете скачать с https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/3.0.2/bson-3.0.2.jar

Артикул:

общественного класса Document Object расширяет реализует карту, Serializable, BSON представление документа в виде карты. Все итераторы будут перемещаться по элементам в порядке вставки, как в LinkedHashMap. С: 3.0.0

http://api.mongodb.org/java/3.0/org/bson/Document.html

10

Я считаю, что вы загрузили MongoDB-драйвера для Java, а не Монго-Java-драйвер.

Самый простой способ заключается в Загрузите Монго-ява-водитель-3.xxjar библиотеки, доступны в http://mongodb.github.io/mongo-java-driver/

Он содержит следующие пакеты:

  • MongoDB Driver
  • MongoDB Асинхронный Водитель
  • BSON Library
  • Core Driver

Если вы устанавливаете только драйвер MongoDB, вам необходимо отдельно загрузить библиотеку BSON.

+1

Спасибо, это должен был быть принятый ответ – Dima

+0

Руководство по установке mongoDB для драйвера Java говорит: «В версии 3.4 доступны два артефакта Maven. Предпочтительный артефакт для новых приложений однако это mongodb-driver, но мы по-прежнему публикуем устаревший mongo-java-драйвер uber-jar ». –

+0

решил мою проблему! – Rumin

0

Если вы используете затмение и Maven изменить зависимость в pom.xml следующим образом: -

<dependency> 
    <groupId>org.mongodb</groupId> 
    <artifactId>mongo-java-driver</artifactId> 
    <version>3.4.2</version> 
    </dependency> 
Смежные вопросы