2011-05-18 100 views
0

我在文本挖掘中使用Medline的文章。我已將所有Medline2011與MongoDB(http://www.mongodb.org/)編入索引,現在我可以通過其PubMedID獲得一篇文章。我想用UIMA(http://uima.apache.org/)加入它,並且我創建了DescriptorReader以從MongoDB獲得文章String(使用MondoDB Driver for JAVA)。我有這樣的代碼(一個簡單的例子)和作品:從JAVA連接MongoDB的問題

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個線程在一次和作品......我不知道,不undertands什麼正在發生......

有什麼建議嗎?

thx。

回答

2

將mongo庫提供給您的類路徑,並且錯誤應該消失。

try/catch方法是有效的,如果刪除了MongoException(這個人是不是你的classpath衆所周知,罐失蹤),並與通用Exception

替換它如果是在Eclipse中開發只需添加蒙戈罐子到你的buildpath。我不知道UIMA,但這不應該

+0

謝謝!我改變了這個例外,並且有同樣的問題。在項目中我有mongo驅動程序(* .jar)。當我寫入「M」並按下Control + SPACE時,Eclipse會檢測Mongo類。我已經在示例代碼中定義了路徑,並且mongo jar在該項目中。 – 2011-05-18 09:06:34

+0

正如我所提到的,我真的不知道UIMA,您是在eclipse IDE中執行不工作的項目還是導出/打包項目? – onigunn 2011-05-18 09:10:12

+0

Asrijaal不認爲UIMA。我在幾個項目中使用API​​ UIMA管道並且完美地工作。我可以從幾種方式獲取文本到TextMining,我想添加一個新的方法,一個新的類訪問mongo並獲取文本(如示例代碼),但我有這個錯誤... – 2011-05-18 09:18:44