java.lang.NoSuchMethodError:com.mongodb.DBCollection.save(Lcom/mongodb/DBObject;)V
以下是示例代码。错误发生在第 3 行。
1 BasicDBObject dbo=new BasicDBObject(data);
2 DBCollection coll = new Mongo().getDB("test")
3 coll.save(dbo);
4 data.put(Entity.DB_ID, dbo.get(Entity.DB_ID));
奇怪的是,当从 Tomcat6 运行 webapp 并使用 mongo 2.4 或 2.5.3 时,会出现此错误。使用 2.0.rc3 时,它工作正常。我想使用 2.5.3。此外,当从 eclipse 或命令行运行时,它适用于所有三个版本(2.0、2.4、2.5.3)。并且 DBCollection 类正在加载,因为 coll.insert()、coll.find() 正在运行。只是当我调用 save() 时,它说 NoSuchMethodError。
这是全新安装的 Ubuntu 10.4 和其上的 tomcat6。JDK 是 OpenJDK java 版本“1.6.0_20”OpenJDK 运行时环境 (IcedTea6 1.9.7) (6b20-1.9.7-0ubuntu1~10.04.1)
答案1
听起来你需要在这里重新编译并确保你的目标是干净的,如果类路径中不同版本存在冲突的 mongo jar 文件,那么 moethod 返回的改变(我认为在 2.0 --> 2.5 中存在)会导致这种问题。