Jika Anda ingin memuat kredensial DB secara dinamis. Hal ini dimungkinkan hanya untuk saat Tomcat sedang memuat context.xml
sekali (karena Tomcat membaca variabel lingkungan hanya sekali saat startup).
Perhatikan bahwa pada saat runtime, setiap kali contxt.xml
mengubah reload aplikasi web yang relevan. Tomcat tidak dimulai ulang.
Jadi triknya adalah mengirimkan kredensial DB sebagai parameter/argumen JVM, seperti ${catalina.base}
di atas
Ada 3 tahap:
-
Deklarasikan dan setel nilai ke variabel lingkungan:
export DB_CREDENTIALS='*****'
Tempat yang bagus adalah di skrip login pengguna Tomcat
.bash_profile
, atau lingkungan Tomcatsetenv.sh
-
Buat parameter JVM (variabel sistem) untuk variabel lingkungan:tambahkan baris berikut ke
setenv.sh
sebelum baris terakhir.-Denvironment.db.credentials=${DB_CREDENTIALS} \
-
Gunakan/panggil parameter JVM yang dideklarasikan di context.xml. Misalnya:
url="jdbc:postgresql://**********:****/${environment.db.credentials}"