我正在使用以下代码:
package common;
import com.mongodb.MongoClient;
import com.mongodb.ServerAddress;
import org.mongodb.morphia.Datastore;
import org.mongodb.morphia.Morphia;
import play.GlobalSettings;
import java.util.Arrays;
public class Global extends GlobalSettings {
private static Datastore datastore;
public static Datastore getDatastore() {
return datastore;
}
@Override
public void onStart(play.Application config) {
super.beforeStart(config);
int mongoPort = config.configuration().getInt("mongo.port");
MongoClient mongoClient = new MongoClient(Arrays.asList(
new ServerAddress(config.configuration().getString("mongo.server1"), mongoPort)));
Morphia morphia = new Morphia();
datastore = morphia.createDatastore(mongoClient, config.configuration().getString("mongo.db"));
datastore.ensureIndexes();
}
}
我通过以下方式调用getDatastore()
方法:
public void save() {
Global.getDatastore().save(this);
}
但它会在return datastore
行引发nullpointer异常。当我将调试点放在onStart
方法上时,它甚至都没有被调用。
我在这里做错了什么?
答案 0 :(得分:1)
你必须设置
application.global=common.Global
在application.conf