Als u de DB-referentie dynamisch wilt laden. Het is mogelijk om alleen voor de tijd dat Tomcat context.xml
aan het laden is eenmaal (omdat Tomcat de omgevingsvariabele slechts één keer leest bij het opstarten).
Merk op dat tijdens runtime, wanneer contxt.xml
de relevante herlaadbeurten van de webapplicatie wijzigen. Tomcat wordt niet opnieuw opgestart.
De truc is dus om DB-referenties te leveren als JVM-parameter/argument, zoals de bovenstaande ${catalina.base}
Er zijn 3 fasen:
-
Declareer en stel waarde in voor de omgevingsvariabele:
export DB_CREDENTIALS='*****'
Een goede plaats is bij Tomcat's gebruikersaanmeldingsscript
.bash_profile
, of Tomcat-omgevingensetenv.sh
-
Maak een JVM-parameter (systeemvariabele) voor omgevingsvariabele:voeg de volgende regel toe aan
setenv.sh
voor de laatste regel.-Denvironment.db.credentials=${DB_CREDENTIALS} \
-
Gebruik/roep de gedeclareerde JVM-parameter aan in context.xml. Bijvoorbeeld:
url="jdbc:postgresql://**********:****/${environment.db.credentials}"