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.shfö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}"