Проблемы с подключением MongoDB от JAVA - PullRequest
0 голосов
/ 18 мая 2011

Я работаю в Text Mining со статьями от Medline.Я проиндексировал все Medline2011 с MongoDB (http://www.mongodb.org/),, теперь я могу получить одну статью с ее PubMedID. Я хочу объединить ее с UIMA (http://uima.apache.org/),), и я создал DescriptorReader для получения статьи String из MongoDB (используя драйвер MondoDB для JAVAУ меня есть этот код (быстрый пример), и он работает:

public static void main(String[] args) throws UnknownHostException, MongoException {
    Mongo m = new Mongo("localhost", 27017);
    DB db = m.getDB(DB_NAME);
    DBCollection coll = db.getCollection(COLLECTION_NAME);

    BasicDBObject query = new BasicDBObject();      
    String pmid = "6889938";       
    query.put("_id", pmid);

    DBObject myDoc = coll.findOne(query);

    System.out.println(myDoc);  
}

Но, когда я пытаюсь написать тот же код в проекте с UIMA, у меня появляется следующая ошибка:

КогдаЯ использую:

    private String getAbstractXMLFromMongoDB(String pmid) throws UnknownHostException, MongoException{      
        Mongo m = new Mongo(); // <-----ERROR
        ...
        return "something"

Ошибка в консоли:

ThreadGroup.uncaughtException()-Got Error
    java.lang.NoClassDefFoundError: com/mongodb/Mongo
...

А если я использую try / catch:

    private String getAbstractXMLFromMongoDB(String pmid){      
    try {
        Mongo m = new Mongo(); // <-----ERROR
        ...
    } catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (MongoException e) {
        e.printStackTrace();
    }
    return "something"

Ошибка в консоли:

Exception in thread "Thread-5" java.lang.NoClassDefFoundError: com/mongodb/MongoException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
...

Я попытался (в примере кода) получить доступ к MongoDB с 100 потоками одновременно и работает ... Я не знаю и не предпринимаю того, что происходит ...

Есть предложения?

thx.

1 Ответ

2 голосов
/ 18 мая 2011

Предоставьте библиотеки монго вашему пути к классам, и ошибка должна исчезнуть.

Ваш try/catch подход будет работать, если вы удалите MongoException (этот не известен вашему classpath, jar отсутствует) и замените его универсальным Exception

Если вы разрабатываете в Eclipse, просто добавьте баночки Монго в ваш путь сборки. Я не знаю UIMA, но это не имеет значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...