从 application.conf 加载自定义 conf 文件时出错

Error in Loading custom conf file from application.conf

我正在使用 play-2.3。我想通过 application.conf 加载我的自定义配置文件。但无法加载它。

 conf /
          application.conf
          mycustom.prop

我将 mycustom.prop 包括在 application.conf 中,如下所示。

   include file("CAB.prop") 
     or 
    include "mycustom.prop"
    or 
     include "mycustom"
以上的

None 有效。

mycustum.prop:

myappIp=x.x.x.x
myappport=1234

在我尝试访问 myAppIp 的代码中,它给了我 NullPointerException

MyGlobal.java

import com.typesafe.config.ConfigFactory
...
    String ip = ConfigFactory.load().getString("myAppIp"); // this line throws NullPointerException

我不确定,问题出在加载 mycustom.prop 或获取其值时。

您可以尝试将 application.conf 包含在 mycustom.prop 中,然后使用 -Dconfig.resource-Dconfig.file.

启动激活器

你的mycustom.prop

include "application.conf"
# much configuration follows

如果您的配置文件在类路径中(例如在配置文件夹中),则以 activator -Dconfig.resource=mycustom.prop 开头 - 如果您想指定路径,则以 activator -Dconfig.file=/opt/conf/mycustom.prop 开头。

编辑:

原来他们只支持几个文件扩展名:https://github.com/typesafehub/config#rationale-for-supported-file-formats。我测试了各种文件,只有 .properties.conf.json 文件被 include 拾取。任何其他文件类型都将被忽略。


(以下不是问题,尽管 Play 文档说明了这一点,但底层库接受问题中提到的格式 - 保留在这里用于遗留目的)

来自docs

An include statement consists of the unquoted string include and a single quoted string immediately following it.

所以应该是

include "mycustom.prop"