यदि आप डीबी क्रेडेंशियल को गतिशील रूप से लोड करना चाहते हैं। यह केवल उस समय के लिए संभव है जब टॉमकैट context.xml
लोड कर रहा हो एक बार (क्योंकि टॉमकैट स्टार्टअप पर केवल एक बार पर्यावरण चर पढ़ता है)।
ध्यान दें कि रनटाइम पर, जब भी contxt.xml
प्रासंगिक वेब एप्लिकेशन रीलोड बदलें। टॉमकैट पुनरारंभ नहीं हुआ है।
तो चाल डीबी क्रेडेंशियल्स को JVM पैरामीटर/तर्क के रूप में वितरित करना है, जैसे उपरोक्त ${catalina.base}
इसके 3 चरण हैं:
-
पर्यावरण चर के लिए मान घोषित करें और सेट करें:
export DB_CREDENTIALS='*****'
टॉमकैट की उपयोगकर्ता लॉगिन स्क्रिप्ट पर अच्छी जगह है
.bash_profile
, या टॉमकैट वातावरणsetenv.sh
-
पर्यावरण चर के लिए एक JVM पैरामीटर (सिस्टम चर) बनाएँ:निम्न पंक्ति को
setenv.sh
में जोड़ें अंतिम पंक्ति से पहले।-Denvironment.db.credentials=${DB_CREDENTIALS} \
-
संदर्भ.एक्सएमएल में घोषित जेवीएम पैरामीटर का उपयोग/कॉल करें। उदाहरण के लिए:
url="jdbc:postgresql://**********:****/${environment.db.credentials}"