java - 如何调用play框架全局设置中的onStart方法?

标签 java mongodb playframework playframework-2.0 morphia

我正在使用以下代码:

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);
}

但它在返回数据存储行上引发空指针异常。当我将调试点放在 onStart 方法上时,它甚至没有被调用。

我在这里做错了什么?

最佳答案

你必须设置

application.global=common.Global

在您的application.conf

关于java - 如何调用play框架全局设置中的onStart方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35105818/

相关文章:

javascript - MongoDB 和 Nodejs,通过 ids 列表查找

javascript - Node.js 更新 MongoDB 中的元素

java - 删除 playframework 中的路线列表

java - 如何在远程 ejb 查找期间设置超时?

java - Jupyter Scala 笔记本无法识别使用 Java 列表的 Scala 匿名函数

java - 在 ms windows 中编译 mac os java 文件时出错

javascript - Angular-fullstack 获取当前用户 ID

java - Java 定时器和 TimerTask

playframework - Play Framework 测试错误

java - 在 Scala 模板中为变量创建和赋值