【问题标题】:How to call onStart method in play framework Global setting?如何在播放框架全局设置中调用onStart方法?
【发布时间】:2016-01-30 19:03:17
【问题描述】:

我正在使用以下代码:

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 行上引发空指针异常。当我将调试点放在onStart 方法上时,它甚至没有被调用。

我在这里做错了什么?

【问题讨论】:

  • 我们说的是哪个版本的游戏?

标签: java mongodb playframework playframework-2.0 morphia


【解决方案1】:

你必须设置

application.global=common.Global

在你的application.conf

【讨论】:

    猜你喜欢
    • 2016-01-18
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多