Jeśli chcesz dynamicznie załadować poświadczenia DB. Możliwe jest tylko na czas, gdy Tomcat ładuje context.xml raz (ponieważ Tomcat odczytuje zmienną środowiskową tylko raz podczas uruchamiania).
Zwróć uwagę, że w czasie wykonywania zawsze, gdy contxt.xml zmienić odpowiednie przeładowania aplikacji internetowych. Tomcat nie jest restartowany.
Sztuczka polega więc na tym, aby dostarczyć poświadczenia bazy danych jako parametr/argument JVM, jak powyższy ${catalina.base}
Istnieją 3 etapy:
-
Zadeklaruj i ustaw wartość zmiennej środowiskowej:
export DB_CREDENTIALS='*****'Dobrym miejscem jest skrypt logowania użytkownika Tomcat
.bash_profilelub środowiska Tomcatsetenv.sh -
Utwórz parametr JVM (zmienna systemowa) dla zmiennej środowiskowej:dodaj następujący wiersz do
setenv.shprzed ostatnią linią.-Denvironment.db.credentials=${DB_CREDENTIALS} \ -
Użyj/wywołaj zadeklarowany parametr JVM w context.xml. Na przykład:
url="jdbc:postgresql://**********:****/${environment.db.credentials}"