0

我正在尝试从我的代理中使用 Mongo 数据库(使用 Jade 代理框架)。试图从 Agent 向数据库写入一些东西并没有成功NoClassDefFoundError

代码非常简单,如下:

public class SomeAgent extends Agent {
    protected void setup(){
        addBehaviour(new OneShotBehaviour() {           
            @Override
            public void action() {
                MongoClient mc;
                try {
                    mc = new MongoClient();
                    DB db = mc.getDB("foo");
                    DBCollection collection = db.getCollection("bar");
                    DBObject dbobject = (DBObject) JSON.parse("{something:1}");
                    collection.insert(dbobject);
                } catch (UnknownHostException e) {
                    e.printStackTrace();
                }               
            }
        });
     }
} 

错误是java.lang.NoClassDefFoundError: com/mongodb/MongoClient,但我已经在 Eclipse 构建路径中包含了 mongo java 驱动程序。这真的很奇怪。你们中的任何人都知道造成这种情况的潜在原因吗?任何提示都非常感谢。

4

1 回答 1

0

这种错误几乎总是与classpath的问题有关,你必须记住eclipse的buildpath在JADE运行时没有使用,你必须更新环境classpath或在启动jade环境的命令中通知库。

于 2013-10-31T13:56:47.710 回答