Ich habe eine Java-Webanwendung, die erfolgreich auf Tomcat läuft.OpenShift 3: Zugriff auf POSTGRESQL-POD-Umgebungsvariablen mit Java?
ich drei Umgebungsvariablen in meinem myapp Bereitstellung erstellt haben:
MY_ENV_VAR_1=dbuser
MY_ENV_VAR_2=dbpassword
MY_ENV_VAR_3=dbname
Ich kann diese Werte mit Standard-Java-Code erhalten:
myEnvVar1 = System.getenv("MY_ENV_VAR_1"); myEnvVar2 = System.getenv("MY_ENV_VAR_2"); myEnvVar3 = System.getenv("MY_ENV_VAR_3");
habe ich ‚normale Java 'Code zum Verbinden mit der Datenbank:
Verbindung = DriverManager.getConnection ("jdbc: postgresql: //" + postgresqlServiceHost + ":" + postgresqlServicePort + "/" + myEnvVar3, myEnvVar1, myEnvVar2);
So kann ich erfolgreich mit der Datenbank verbinden.
Das Problem ist:
I (in Webkonsole) sehen kann, aber nicht die Werte aus den drei Umgebungsvariablen in dem postgresql Einsatz kommen:
POSTGRESQL_USER
POSTGRESQL_PASSWORD
POSTGRESQL_DATABASE
das 'normale' System. getenv ("POSTGRESQL_USER"); funktioniert nicht.
Also, kann mir bitte jemand sagen, wie man mit Java-Code auf die Werte dieser drei postgresql Pod-Umgebungsvariablen zugreifen kann?
Haben Sie sie auf die Deployment-Konfiguration für Ihre Anwendung hinzufügen? Sie werden beim Bereitstellen der Datenbank nicht automatisch hinzugefügt. Siehe Beispiel für das Hinzufügen von Datenbankumgebungsvariablen zur Anwendung in https://www.openshift.com/promotions/for-developers.html –
Danke Graham, Ich fand Ihr Buch früher und sah, dass env vars nicht zu der App hinzugefügt werden. Also habe ich sie manuell hinzugefügt und es hat angefangen zu arbeiten. Ist das der richtige Weg? Für zukünftige Referenz ... – Lyndon
Für jetzt ist es. Wenn der Open Service Broker ordnungsgemäß in OpenShift integriert ist, kann bei der Verknüpfung einer Datenbank mit einer Anwendung die Umgebungsvariable automatisch aufgefüllt werden. Ich weiß nicht, wann sie sein könnten. –