मैं यह कहकर शुरू करूंगा कि प्रश्न पूरी तरह से सही तरीके से नहीं बनाया गया है, क्योंकि टॉमकैट को पुनरारंभ किए बिना फ़ाइल को वास्तव में संपादित करना काफी संभव है, लेकिन परिवर्तन को चल रही प्रक्रिया द्वारा अनदेखा किया जाता है।
असली सवाल यह होगा कि server.xml
टॉमकैट को फिर से शुरू किए बिना परिवर्तनों को कैसे लागू किया जाए ।
टॉमकैट के ऑनलाइन प्रलेखन पर स्टार्टअप प्रक्रिया और वर्ग-लोडर पृष्ठों से जानकारी इकट्ठा करना , इसे और अधिक विस्तार से समझना संभव है।
विशेष रूप से, यह serverStartup.txt में वर्णित है और स्टार्टअप प्रक्रिया के यूएमएल आरेख और संबंधित भागों को संक्षेप में निम्नानुसार किया जा सकता है:
Sequence 1. Start from Command Line
...
Sequence 2. Process command line argument (start, startd, stop, stopd)
Class: org.apache.catalina.startup.Bootstrap (assume command->start)
What it does:
a) Catalina.setAwait(true);
b) Catalina.load()
b3) createStartDigester()
Configures a digester for the main server.xml elements
b4) Load the server.xml and parse it using the digester
Parsing the server.xml using the digester is an automatic
XML-object mapping tool, that will create the objects defined
in server.xml
Startup of the actual container has not started yet.
b6) Calls initialize on all components, this makes each object
register itself with the JMX agent.
यह सर्वलेट इंजन (कैटालिना) के बूटस्ट्रैप क्लास लोडर के निर्माण के बाद होता है।
इस जानकारी के साथ, यह अब स्पष्ट है जब स्टार्टअप प्रक्रिया में server.xml
फ़ाइल पार्स की जाती है, लेकिन यह वास्तव में इस सवाल का जवाब नहीं देता है कि इस फ़ाइल में परिवर्तन लागू करने के लिए टॉमकैट को पुनरारंभ करने की आवश्यकता क्यों है।
इसका उत्तर यह है कि इसके कुछ भाग को JMX के उपयोग से गतिशील रूप से संशोधित किया जा सकता है । यह संभव होने के लिए, उपयुक्त एमबीएन को पंजीकृत होना चाहिए (बी 6 कदम ऊपर), और एसईटी संचालन को भी स्वीकार करना होगा (कुछ एमबीआईएन में केवल जीईटी इंटरफ़ेस है)।
आपके विशिष्ट मामले में, रनटाइम के दौरान एक नया होस्ट बनाने और पंजीकृत करने का कोई तरीका नहीं है क्योंकि इसके लिए कोई प्रावधान नहीं है, और यही कारण है कि आपको बूटस्ट्रैप क्लास लोडर को उस ऑब्जेक्ट को तुरंत रजिस्टर करने के लिए टॉमकैट प्रक्रिया को पुनरारंभ करना होगा और इसके साथ रजिस्टर करना होगा। जेएमएक्स एजेंट।
बाद में, जेएमएक्स क्लाइंट से उस होस्ट को संशोधित करना संभव है जैसे jconsole
कि किसी भी जेडीके के साथ बंडल में आता है।
आपको jconsole
एक JMX सक्षम टॉम्कट से कनेक्ट करें और सभी उपलब्ध विशेषताओं की जांच करने के लिए होस्ट MBean ब्राउज़ करें:
और सभी उपलब्ध संचालन (उदाहरण के रूप में नीचे दिखाया गया है उनमें से एक) की जाँच करें: