在OpenShift数据库令牌替换上播放Framework 2.3不起作用

在OpenShift数据库令牌替换上播放Framework 2.3不起作用,openshift,playframework-2.3,Openshift,Playframework 2.3,我正在尝试将Play Framework 2.3应用程序部署到OpenShift 我举这个例子: 构建和部署应用程序正在工作(我的意思是,push到git存储库正在工作,构建正在成功完成),但在启动过程中,我在play.log中看到此错误: AbstractConnectionHook - Failed to obtain initial connection Sleeping for 0ms and trying again. Attempts left: 0. Exception: nul

我正在尝试将Play Framework 2.3应用程序部署到OpenShift

我举这个例子:

构建和部署应用程序正在工作(我的意思是,
push
到git存储库正在工作,构建正在成功完成),但在启动过程中,我在
play.log
中看到此错误:

AbstractConnectionHook -
Failed to obtain initial connection Sleeping for 0ms and trying again. 
Attempts left: 0. Exception: null.
Message:No suitable driver found for jdbc:${OPENSHIFT_POSTGRESQL_DB_URL}
Oops, cannot start the server.
Configuration error: Configuration error[Cannot connect to database [default]]
    at play.api.Configuration$.play$api$Configuration$$configError(Configuration.scala:94)
    at play.api.Configuration.reportError(Configuration.scala:743)
    at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:247)
    at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:238)
    at scala.collection.immutable.List.map(List.scala:272)
    at play.api.db.BoneCPPlugin.onStart(DB.scala:238)
    at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
    at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:91)
    at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
    at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
    at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
    at play.api.Play$.start(Play.scala:90)
    at play.core.StaticApplication.<init>(ApplicationProvider.scala:55)
    at play.core.server.NettyServer$.createServer(NettyServer.scala:244)
    at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:280)
    at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:275)
    at scala.Option.map(Option.scala:145)
    at play.core.server.NettyServer$.main(NettyServer.scala:275)
    at play.core.server.NettyServer.main(NettyServer.scala)
Caused by: java.sql.SQLException: No suitable driver found for jdbc:${OPENSHIFT_POSTGRESQL_DB_URL}
    at java.sql.DriverManager.getConnection(DriverManager.java:596)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:363)
    at com.jolbox.bonecp.BoneCP.<init>(BoneCP.java:416)
    at com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:120)
    at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:240)
    ... 18 more
我也尝试过使用其他环境变量,比如
OPENSHIFT\u POSTGRESQL\u DB\u HOST
,但这些变量也没有被替代

我的
openshift.conf
的相关部分如下所示:

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:${OPENSHIFT_POSTGRESQL_DB_URL}"
db.default.user=myappuser
db.default.password=myapppassword
在链接的quickstart项目中,使用以下命令启动Play服务器(同样,为了本文的目的,我替换了服务器ip):


您可以看到正在引用的
openshift.conf
文件。

我尝试了很多方法,最终找到了一些有效的方法:

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://"${OPENSHIFT_POSTGRESQL_DB_HOST}":"${OPENSHIFT_POSTGRESQL_DB_PORT}/mydb
db.default.user=(((db-user)))
db.default.password=(((dp-password)))
结果似乎是,您需要非常小心地注意引号字符的正确用法

它看起来“错误”(乍一看),因为最后一个引号字符关闭了
OPENSHIFT\u POSTGRESQL\u DB\u端口之前的字符串。
变量。

两个想法:1.)您是否在齿轮上安装了POSTGRESQL盒带?SSH到您的设备中,运行“env | grep POSTGRESQL”,看看它是否显示了任何环境变量。2)在github repo上发布一个问题,看看他们有什么要说的,因为他们创建了它,所以他们最好回答关于它的问题。1)是的,安装了postgresql盒带,部署了我的db模式,我可以在我的PC上使用pgadmin或psql来查看它;我在问题中已经提到,我检查了环境变量是否已设置;2) 是的,也许这就是路。我不确定这是否是在Play/OpenShift上的wrt代币替换的一般问题
/app-root/runtime/repo/target/universal/stage/bin/myapp
"-DapplyEvolutions.default=true" 
-Dhttp.port=8080 -Dhttp.address=server-ip 
-Dconfig.resource=openshift.conf
db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://"${OPENSHIFT_POSTGRESQL_DB_HOST}":"${OPENSHIFT_POSTGRESQL_DB_PORT}/mydb
db.default.user=(((db-user)))
db.default.password=(((dp-password)))