繁体   English   中英

如何在Play框架的`conf / application.conf`中查找变量?

[英]How to lookup variables in the `conf/application.conf` in the Play Framework?

介绍

根据本文档 ,应该可以在conf/application.conf查找环境变量。

使用环境变量

您还可以从application.conf文件中引用环境变量:

 my.key = defaultvalue my.key = ${?MY_KEY_ENV} 

在这里,如果MY_KEY_ENV没有值,则覆盖字段my.key = $ {?MY_KEY_ENV}就会消失,但是例如,如果您设置了环境变量MY_KEY_ENV,它将被使用。

因为可以从其他变量中引用变量,所以请确保不要将环境变量的名称与字段名称相同。

例如:

 MY_TOKEN = foo MY_TOKEN = ${?MY_TOKEN} # Will reference the previous line, NOT your environmentally set variable 

尝试

泊坞窗,compose.test.yml

sut:
  depends_on:
    - db
  ...
  environment:
    VAR_A: db:3306

CONF / application.conf

db.default.url="jdbc:mysql://${?VAR_A}/app"

问题

由于某些原因,无法查找变量: ${: Name or service not known

sut_1  | [info] application - Creating Pool for datasource 'default'
sut_1  | [info] application - Creating Pool for datasource 'default'
sut_1  | [info] - should send 404 on a bad request *** FAILED ***
sut_1  | [info]   play.api.Configuration$$anon$1: Configuration error[Cannot connect to database [default]]
sut_1  | [info]   at play.api.Configuration$.configError(Configuration.scala:154)
sut_1  | [info]   at play.api.Configuration.reportError(Configuration.scala:806)
sut_1  | [info]   at 
...
sut_1  | [info]   Cause: java.net.UnknownHostException: ${: Name or service not known
sut_1  | [info]   at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
sut_1  | [info]   at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
sut_1  | [info]   at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
sut_1  | [info]   at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
sut_1  | [info]   at java.net.InetAddress.getAllByName(InetAddress.java:1192)
sut_1  | [info]   at java.net.InetAddress.getAllByName(InetAddress.java:1126)
sut_1  | [info]   at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:190)
sut_1  | [info]   at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:297)
sut_1  | [info]   at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2232)
sut_1  | [info]   at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2265)
sut_1  | [info]   ...

如何在Play框架的conf/application.conf中查找变量?

从字符串中排除变量:

db.default.url="jdbc:mysql://"${?VAR_A}"/app"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM