我有一個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中時,在將數據庫鏈接到應用程序時,可以自動填充環境變量。我不知道他們什麼時候可能。 –