我在https://github.com/typesafehub/config/blob/master/HOCON.md#substitution-fallback-to-environment-variables阅读了有关返回到环境变量的文档。我的理解是,它会引起任何敌人的注意。因此,例如,如果从shell中我能够执行回显$HOSTNAME并看到一个非空响应,那么HOCON也应该这样做。
在我的application.conf里我有一条线
akka.remote.netty.tcp.hostname = ${HOSTNAME}然而,我的应用程序对此并不满意,而且一开始就失败了。
/conf/application.conf: 9: Could not resolve substitution to a value: ${HOSTNAME}这是用户问题吗?壳问题?我可以以用户身份登录并回显$HOSTNAME。
标记此scala和akka,因为该用户群可能对HOCON的影响最大
发布于 2015-04-16 17:47:25
HOCON之所以没有选择envar,是因为我的应用程序是以linux服务(CentOS6.5)的形式运行的,它清除了大多数环境变量。
有关此问题的相关说明,请参见https://unix.stackexchange.com/questions/44370/how-to-make-unix-service-see-environment-variables。
发布于 2015-04-15 21:33:02
这是在黑暗中拍摄,但您是否使用了较旧版本的类型设置?也许这是个更新的功能?这个特性似乎正如您所描述的那样被宣传,但是如果您将the作为一个临时依赖项(例如来自akka),那么您可能会得到一个更旧的版本。
如果您删除.conf文件中的替换(因此解析成功),然后打印出ConfigFactory.systemEnvironment()的内容,会发生什么?参考:http://typesafehub.github.io/config/latest/api/com/typesafe/config/ConfigFactory.html#systemEnvironment--
发布于 2016-02-11 04:41:53
主机名不是环境变量。这是一个bash内部变量。有关更多详细信息,请参阅https://superuser.com/questions/132489/hostname-environment-variable-on-linux。
https://stackoverflow.com/questions/29655888
复制相似问题