2009-06-12 16 views
8

मैंने जावा, स्ट्रूट्स और अपाचे सर्वर और टोमकैट पर चल रहे एक वेब एप्लिकेशन बनाया है। यह वेब से एप्लिकेशन को पुनरारंभ करने में सक्षम होने के लिए बहुत उपयोगी होगा। मैं टॉमकैट को फिर से शुरू नहीं करना चाहता, केवल यह वेबपैप, वैसे ही जैसे टोमकैट प्रबंधक इसे करता है।अपने आप से एक वेब एप्लिकेशन शुरू/बंद करें?

क्या आप जानते हैं कि मैं इसे कैसे कर सकता हूं? यदि नहीं, तो उस व्यवहार को अनुकरण करने का कोई तरीका (पुनः लोड config.properties, हाइबरनेट इनिट प्रक्रिया, आदि)?

आपको बहुत धन्यवाद।

+0

आपको उपयोगी होने के लिए [यह] (http://p2p.wrox.com/servlets/40311-tomcat-restart-only-one-application.html) लिंक मिल सकता है। –

उत्तर

5

मैंने टॉमकैट प्रबंधक के लिए स्रोत कोड पर एक त्वरित नज़र डाली। ऐसा लगता है कि एक वर्ग है जो "कंटेनर सर्वलेट" नामक टोमकैट स्रोत का हिस्सा है। javadocs से:

एक ContainerServlet एक सर्वलेट कैटालिना आंतरिक कार्यक्षमता की पहुंच न हो, और कैटालिना वर्ग लोडर के बजाय वेब अनुप्रयोग वर्ग लोडर से भरी हुई है है।

एक ContainerServlet स्वचालित रूप से एक आवरण है कि संदर्भ और deployer प्राप्त करने के लिए इस्तेमाल किया जा सकता पारित कर दिया जाता है - और deployer करना होगा कि इस तरह के start(String contextPath) और stop(String contextPath) के रूप में उपयोगी तरीकों तुम क्या चाहते है।

तो, मुझे लगता है कि आपको ऐसा करने की आवश्यकता होगी जो कंटेनर सर्लेट से विरासत में अपना स्वयं का सर्वलेट लिखता है, और कैटलिना क्लास लोडर का उपयोग करके अपने सर्वलेट को लोड करने के लिए टॉमकैट को कॉन्फ़िगर करें (देखें कि प्रबंधक कैसे देखता है)। ध्यान दें कि यह होस्टेड वातावरण में आपके लिए एक विकल्प नहीं होगा।

तब आपका सर्वलेट, एक बटन जिसे आप एप्लिकेशन को पुनः लोड करने के लिए दबा सकते हैं, कह सकता था। मैं इसके सामने किसी तरह की पासवर्ड-सुरक्षा डालने की सलाह देता हूं। :)

1

टोमकैट प्रबंधक एप्लिकेशन और अन्य कार्यों को शुरू/बंद करने के लिए एक http इंटरफ़ेस प्रदान करता है। Ant tasks हैं जिनका उपयोग आप इन परिचालनों को आसानी से एक्सेस करने के लिए कर सकते हैं।

2

बस को रोकने के लिए यूआरएल

http://<username>:<password>@<hostname>:<port>/manager/stop?path=/<context path> 

मारा और

http://<username>:<password>@<hostname>:<port>/manager/start?path=/<context path> 

शुरू करने के लिए। यह आपको प्रबंधक अनुप्रयोग का उपयोग करके अनुकरण करता है।

+0

टॉमकैट 7 के बाद से आपको 'प्रबंधक' के बजाय 'प्रबंधक/टेक्स्ट' का उपयोग करना होगा। – lazlev

संबंधित मुद्दे