2013-07-29 1 views
0

я имею MongoDB вопрос соединения в Java, это мое подключение к классуMongoDB проблема соединения с Java

public MongoDbUtil() { 
    try { 
     System.out.println("1"); 
    String host = "127.0.0.1" ; 
    String dbName = "m_prod" ; 
    int port =27017 ; 
     System.out.println("2"); 
    Mongo m = new Mongo(); 
     System.out.println("3"); 
    ds = new Morphia().createDatastore(m,dbName); 
     System.out.println("4"); 
    ds.ensureIndexes(); 
     System.out.println("5"); 
    ds.ensureCaps(); 
     System.out.println("1"); 
    } catch(Exception e) { 
     System.out.println("catch");    
    }finally{ 
     System.out.println("finally"); 
     System.out.println(ds==null); 
    } } 

только 1 и 2 является печать, после того, что «наконец-то» печатает также «DS» равно нулю, нет никакого исключения («catch» не печатает)

Сервер Mongo работает, и я могу получить доступ из командной строки (Linux). Другое интересное - это то, что он отлично работает, когда я вызываю этот метод единичная тестовая функция, но для всех остальных случаев, описанных выше, что может быть причиной?

Благодаря

+1

Попробуйте, если 'catch (Throwable e)' (вместо 'catch (Exception e)') показывает некоторые ошибки. – nutlike

+3

Используйте e.printStackTrace(). В противном случае ваш блок catch бесполезен для любой информации об ошибке. – Kayaman

+0

@ Kayaman: программа не приходит, чтобы поймать блок даже, его не печатает «catch», который печатает внутри блока catch – user1573690

ответ

3
  1. Mongo() устарела, вы должны использовать вместо MongoClient() - см http://api.mongodb.org/java/2.11.0/com/mongodb/Mongo.html#Mongo()
  2. Тем не менее он должен найти устаревшее конструктор. Можете ли вы включить импорт своего файла, пожалуйста?
+0

Спасибо, что такое пакет класса «MongoClient», я использую mongo java driver 3.0.0 ? – user1573690

+0

Вы уверены, что 3.0.0? [Последняя версия] (http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.mongodb%22%20AND%20a%3A%22mongo-java-driver%22) должна быть * 2.11.2 *. '' MongoClient() '' является оболочкой вокруг '' Mongo() '' с более безопасными настройками по умолчанию. '' Mongo() '' все еще доступен для обратной совместимости, но больше не должен использоваться. – xeraa

+0

Я пытаюсь обновить версию, но, имея проблему с версией Morphia, я использую morphia 0.91, который использовал mongo-java-driver: 2.8.0, из-за этого я не могу добавить mongo-java-driver: зависимость 2.11.2 в мой файл pom.xml – user1573690

1

Если вы используете драйвер 3.0, есть уровень совместимости с драйвером, который поможет вам перейти. Однако вы действительно должны использовать новый API.

+0

Связано с этим: Предоставляете ли вы SNAPSHOT/alpha/beta Java Водитель? И как это работает в сочетании с Морфией? – xeraa

+0

Мы только начинаем процесс тестирования morphia против драйвера 3.0. Мы доходим до 4 тестовых сбоев, 2 из которых вызваны одной и той же проблемой. Я не уверен в публичных снимках, но я спрошу. – evanchooly

+1

Если добавить этот репозиторий в вашем ПОМ, вы можете получить 3,0 снимка строит https://oss.sonatype.org/content/repositories/snapshots с этой зависимостью: org.mongodb Монго-Java -driver 3.0.0-SNAPSHOT evanchooly

 Смежные вопросы

  • Нет связанных вопросов^_^