我有一个Java webapp在Tomcat上成功运行。OpenShift 3:如何使用Java访问POSTGRESQL POD环境变量?
我在MYAPP创造三个环境变量部署:
MY_ENV_VAR_1=dbuser
MY_ENV_VAR_2=dbpassword
MY_ENV_VAR_3=dbname
我可以使用标准的Java代码获取这些值:
myEnvVar1 = System.getenv("MY_ENV_VAR_1"); myEnvVar2 = System.getenv("MY_ENV_VAR_2"); myEnvVar3 = System.getenv("MY_ENV_VAR_3");
我用“正常的Java '代码连接到数据库:
connection = DriverManager.getConnection(“jdbc:postgresql://”+ postgresqlServiceHost +“:”+ postgresqlServicePort +“/”+ myEnvVar3,myEnvVar1,myEnvVar2);
所以,我可以成功连接到数据库。
的问题是:
我可以看到(在Web控制台),但不能让PostgreSQL的部署,从以下三个环境变量的值:
POSTGRESQL_USER
POSTGRESQL_PASSWORD
POSTGRESQL_DATABASE
使用“正常”系统。 GETENV( “POSTGRESQL_USER”);不起作用。
那么,请有人告诉我如何使用Java代码访问这三个postgresql pod环境变量的值?
你将它们添加到您的应用程序部署配置?在部署数据库时不会自动添加它们。请参阅https://www.openshift.com/promotions/for-developers.html –
将数据库环境变量添加到应用程序的示例。感谢Graham,我之前实际找到了您的书,并发现env vars最初并未添加到应用程序中。所以我手动添加它们并开始工作。这是做到这一点的正确方法吗?以供将来参考... – Lyndon
现在它是。当Open Service Broker被正确地结合到OpenShift中时,在将数据库链接到应用程序时,可以自动填充环境变量。我不知道他们什么时候可能。 –