【发布时间】:2011-05-18 08:41:54
【问题描述】:
我正在使用来自 Medline 的文章从事文本挖掘工作。我已经用 MongoDB (http://www.mongodb.org/) 索引了所有 Medline2011,现在我可以用它的 PubMedID 获得一篇文章。我想与 UIMA (http://uima.apache.org/) 一起加入它,并且我创建了 DescriptorReader 以从 MongoDB 获取文章字符串(使用 MondoDB Driver for 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)
...
我曾尝试(在示例代码中)一次使用 100 个线程访问 MongoDB 并且可以工作...我不知道也不了解发生了什么...
有什么建议吗?
谢谢。
【问题讨论】: