向Global类添加最终静态常量后,“无法初始化Global对象"错误 [英] 'Cannot init the Global object' error after adding a final static constant to Global class

查看:116
本文介绍了向Global类添加最终静态常量后,“无法初始化Global对象"错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将Play Framework 2.2.3与Java一起使用.

I'm using Play Framework 2.2.3 with Java.

我只是向我的Global类添加一个常量:

I just add a constant to my Global class:

public static final String VERSION = play.application().configuration().getString("application.version");

然后我收到此错误:

play.api.PlayException: Cannot init the Global object[null]
    at play.api.WithDefaultGlobal$$anonfun$play$api$WithDefaultGlobal$$globalInstance$1.apply(Application.scala:55) ~[play_2.10.jar:2.2.3]
    at play.api.WithDefaultGlobal$$anonfun$play$api$WithDefaultGlobal$$globalInstance$1.apply(Application.scala:49) ~[play_2.10.jar:2.2.3]
    at play.utils.Threads$.withContextClassLoader(Threads.scala:18) ~[play_2.10.jar:2.2.3]
    at play.api.WithDefaultGlobal$class.play$api$WithDefaultGlobal$$globalInstance(Application.scala:48) ~[play_2.10.jar:2.2.3]
    at play.api.DefaultApplication.play$api$WithDefaultGlobal$$globalInstance$lzycompute(Application.scala:399) ~[play_2.10.jar:2.2.3]
    at play.api.DefaultApplication.play$api$WithDefaultGlobal$$globalInstance(Application.scala:399) ~[play_2.10.jar:2.2.3]
Caused by: java.lang.ExceptionInInitializerError: null
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_65]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[na:1.7.0_65]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.7.0_65]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) ~[na:1.7.0_65]
    at java.lang.Class.newInstance(Class.java:379) ~[na:1.7.0_65]
    at play.api.WithDefaultGlobal$class.play$api$WithDefaultGlobal$$javaGlobal(Application.scala:28) ~[play_2.10.jar:2.2.3]
Caused by: java.lang.RuntimeException: There is no started application
    at scala.sys.package$.error(package.scala:27) ~[scala-library.jar:na]
    at play.api.Play$$anonfun$current$1.apply(Play.scala:68) ~[play_2.10.jar:2.2.3]
    at play.api.Play$$anonfun$current$1.apply(Play.scala:68) ~[play_2.10.jar:2.2.3]
    at scala.Option.getOrElse(Option.scala:120) ~[scala-library.jar:na]
    at play.api.Play$.current(Play.scala:68) ~[play_2.10.jar:2.2.3]
    at play.api.Play.current(Play.scala) ~[play_2.10.jar:2.2.3]

在我的应用运行正常之前.如果我将此常数放在其他任何类中,则我的应用程序运行正常.仅当我将其放入Global时,才会出现此错误.有帮助吗?

Before my app was working fine. If I put this constant in any other class, my app is working fine. Only if I put it in Global I get this error. Any help?

推荐答案

问题指出,如果要在应用程序启动期间访问配置,则应使用onStart方法.

As in this issue pointed out, if you want to access the configuration during application startup, you should use the onStart method.

这篇关于向Global类添加最终静态常量后,“无法初始化Global对象"错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆