播放2.4 Global.java onStart多次调用

时间:2018-06-20 06:23:50

标签: playframework playframework-2.4

使用Play框架v2.4.3,根据https://www.playframework.com/documentation/2.4.x/JavaGlobal#Intercepting-application-start-up-and-shutdown中的文档,我在根名称空间中具有以下Global.java

import play.*;

public class Global extends GlobalSettings {

    public void onStart(Application app) {
        Logger.info("Application has started");
    }

    public void onStop(Application app) {
        Logger.info("Application shutdown...");
    }

}

但是,在生产环境或测试环境中启动应用程序时,日志显示

  

应用程序已启动

     

应用程序已启动

为什么此回调被调用两次?

1 个答案:

答案 0 :(得分:0)

在通过play.api.Play.scala#start进行调试之后,似乎Global插件被注册了两次。在play.api.Plugins.scala#loadPluginClassNames中放置一个断点表明在类路径上有两个名为play.plugins的资源文件-由于依赖项不匹配,导致播放2.4.3和2.4.6都被拉入。 >

通过更正依赖版本或过滤出不正确的Play依赖JAR,以便在类路径上只有单个Play JAR,只有单个play.plugins文件仅注册单个Global插件-因此只调用一次Global.onStart