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

この種のエラーはほとんどの場合、クラスパスの問題に関連しています。Eclipse のビルドパスは JADE ランタイムでは使用されないことに注意する必要があります。環境のクラスパスを更新するか、jade 環境を起動するコマンドでライブラリに通知する必要があります。

于 2013-10-31T13:56:47.710 に答える