Pokud chcete načíst přihlašovací údaje DB dynamicky. Je možné pouze po dobu, kdy Tomcat načítá context.xml
jednou (protože Tomcat čte proměnnou prostředí pouze jednou při spuštění).
Všimněte si, že za běhu, kdykoli contxt.xml
změnit znovu načtení příslušné webové aplikace. Tomcat není restartován.
Takže trik je doručit přihlašovací údaje DB jako parametr/argument JVM, jako je výše ${catalina.base}
Existují 3 fáze:
-
Deklarujte a nastavte hodnotu proměnné prostředí:
export DB_CREDENTIALS='*****'
Dobrým místem je přihlašovací skript uživatele Tomcat
.bash_profile
, nebo prostředí Tomcatsetenv.sh
-
Vytvořte parametr JVM (systémovou proměnnou) pro proměnnou prostředí:přidejte následující řádek do
setenv.sh
před posledním řádkem.-Denvironment.db.credentials=${DB_CREDENTIALS} \
-
Použijte/zavolejte deklarovaný parametr JVM v kontextu.xml. Například:
url="jdbc:postgresql://**********:****/${environment.db.credentials}"