问题是这样的,原先已经有一个webserver项目了,现在需要再建一个类似的webserve,跑在同一个tomcat下。
这两个webserver都用了同一个mongedb环境,只是db name不一样。
为了简单,我只改了project name,没有改package name。然后再改一下database name,代码里可以改databae name的地方有只有这一句mogo.getDB("database name"),我就理所当然地改了,结果怎么也改不过来,到mongo db的数据库目录下查看,创建的总是原来的那个database。
始终找不到原因,最后只得吧包名改了,这样就OK了,所以,初步判断,mongodb java客户端创建的数据库名称和pacakge name是绑定的。
public class Mongodbmanager {
private static Mongo mongo=null;
private static DB mongodb=null;
public static DB getDB()
{
if(mongodb==null)
{try{mongo=new Mongo("localhost", 27017);
MongoOptions option=mongo.getMongoOptions();
option.autoConnectRetry=true;
option.socketKeepAlive=true;
}catch (UnknownHostException e) {
e.printStackTrace();
}
mongodb=mongo.getDB("database name"); //这里的database name根本不起作用
}
return mongodb;
}
}
如果要找到根本原因,看mongodb的源代码,是最好不过的方式了