我在文本挖掘中使用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。
謝謝!我改變了這個例外,並且有同樣的問題。在項目中我有mongo驅動程序(* .jar)。當我寫入「M」並按下Control + SPACE時,Eclipse會檢測Mongo類。我已經在示例代碼中定義了路徑,並且mongo jar在該項目中。 – 2011-05-18 09:06:34
正如我所提到的,我真的不知道UIMA,您是在eclipse IDE中執行不工作的項目還是導出/打包項目? – onigunn 2011-05-18 09:10:12
Asrijaal不認爲UIMA。我在幾個項目中使用API UIMA管道並且完美地工作。我可以從幾種方式獲取文本到TextMining,我想添加一個新的方法,一個新的類訪問mongo並獲取文本(如示例代碼),但我有這個錯誤... – 2011-05-18 09:18:44