Ако искате да заредите идентификационните данни на DB динамично. Възможно е само за времето, когато Tomcat зарежда context.xml
веднъж (защото Tomcat чете променливата на средата само веднъж при стартиране).
Забележете, че по време на изпълнение, когато contxt.xml
променете съответните презареждания на уеб приложения. Tomcat не се рестартира.
Така че трикът е да се доставят идентификационни данни за DB като JVM параметър/аргумент, като горния ${catalina.base}
Има 3 етапа:
-
Декларирайте и задайте стойност на променливата на средата:
export DB_CREDENTIALS='*****'
Добро място е скриптът за влизане на потребители на Tomcat
.bash_profile
, или Tomcat средиsetenv.sh
-
Създайте JVM параметър (системна променлива) за променлива на средата:добавете следния ред към
setenv.sh
преди последния ред.-Denvironment.db.credentials=${DB_CREDENTIALS} \
-
Използвайте/извикайте декларирания JVM параметър в context.xml. Например:
url="jdbc:postgresql://**********:****/${environment.db.credentials}"