Om du vill ladda DB-uppgifterna dynamiskt. Det är möjligt att endast för den tid Tomcat laddar context.xml
en gång (eftersom Tomcat läste miljövariabeln endast en gång vid start).
Observera att vid körning, när contxt.xml
ändra relevanta webbapplikationsladdningar. Tomcat startas inte om.
Så tricket är att leverera DB-referenser som JVM-parameter/argument, som ovanstående ${catalina.base}
Det finns 3 steg:
-
Deklarera och ställ in värdet på miljövariabeln:
export DB_CREDENTIALS='*****'
Bra ställe är vid Tomcats användarinloggningsskript
.bash_profile
, eller Tomcat-miljöersetenv.sh
-
Skapa en JVM-parameter (systemvariabel) för miljövariabel:lägg till följande rad i
setenv.sh
före sista raden.-Denvironment.db.credentials=${DB_CREDENTIALS} \
-
Använd/anrop den deklarerade JVM-parametern i context.xml. Till exempel:
url="jdbc:postgresql://**********:****/${environment.db.credentials}"