2012-09-27 14 views
8

से वेबएप को पुनरारंभ करें मेरे पास एक पीसीआई डीएसएस अनुरूप वातावरण है जो कई ऐप्स चलाता है और मैं सर्वर को पुनरारंभ किए बिना केवल एक ऐप को पुनरारंभ करना चाहता हूं। मेरे पास प्रबंधक नहीं है क्योंकि स्पष्ट रूप से इस माहौल में इसकी अनुमति नहीं है।टॉमकैट कमांड लाइन

मैं कमांड लाइन के माध्यम से एक वेब ऐप को पुनरारंभ करने के बारे में कैसे जा सकता हूं?

+0

संभावित डुप्लिकेट [देव पर्यावरण में टोमकैट में वेबपैप को फिर से लोड करने का एक आसान, त्वरित तरीका क्या है?] (Https://stackoverflow.com/questions/1800784/whats-an-easy-quick-way-to-reload -a-webapp-in-tomcat-in-dev-environment) – rogerdpack

उत्तर

0

दुर्भाग्य से मुझे नहीं लगता कि कमांड लाइन से ऐसा करने का कोई तरीका है। इसके बजाए, मैं यह देखने की अनुशंसा करता हूं कि एकमात्र एप्लिकेशन होस्ट करने का कोई तरीका है जिसे आपको टोमकैट के एक अलग उदाहरण में पुनरारंभ करने की आवश्यकता है ताकि आप अन्य अनुप्रयोगों को प्रभावित किए बिना उस इंस्टेंस को पुनरारंभ कर सकें।

2

प्रबंधक एप्लिकेशन तक पहुंच के बिना, आप इसे नहीं कर सकते हैं। यदि आप प्रबंधक एप्लिकेशन तक पहुंच प्राप्त कर सकते हैं, और फिर भी अपने वेब ब्राउज़र की बजाय कमांड लाइन का उपयोग करना चाहते हैं, तो आप इस command-line script for managing tomcat को टॉमकैट-मैनेजर नामक कोशिश कर सकते हैं। यह अजगर आवश्यकता है, लेकिन आप की तरह एक यूनिक्स शेल से सामान करने की अनुमति देता:

$ tomcat-manager --user=admin --password=newenglandclamchowder \ 
> http://localhost:8080/manager/ reload /myapp 

और:

$ tomcat-manager --user=admin --password=newenglandclamchowder \ 
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war 
+0

शायद प्रबंधक केवल स्थानीयहोस्ट के लिए सक्षम किया जा सकता है? – andho

17

यहाँ है कैसे मैं यह कर:

  1. सुनिश्चित करें कि आप के साथ उपयोगकर्ता है आपके tomcat उपयोगकर्ता डेटाबेस में "प्रबंधक-स्क्रिप्ट" भूमिका। यही कारण है कि आम तौर पर मतलब है कि आप अपने ${TOMCAT}/conf/tomcat-users.xml में इस तरह लाइन है:
<user username="admin" password="secret" roles="manager-gui,manager-script"/> 

अन्यथा, आप क्रॉस साइट अनुरोध जालसाजी (CSRF) संरक्षण की वजह से एक 403 त्रुटि मिल जाएगा।

  1. उपयोग curl या आप URL <yourserver>/manager/text/reload?path=/<context_path> लाने के लिए चाहते जो कुछ कमांड लाइन टूल:

    curl --user user:secret http://localhost:8080/manager/text/reload?path=/mypath 
    
+0

यह काम किया !! धन्यवाद!! – JRichardsz

+0

उन्होंने विशेष रूप से कहा कि उनके पास प्रबंधक FWIW नहीं है ... – rogerdpack

+0

एक Google खोज ने मुझे अभी भी यह धागा दिखाया है और यही वह है जो मैं – Kunal

10

मैं जानता हूँ कि मैं पार्टी के लिए देर हो चुकी है, लेकिन एक कमांड लाइन से ऐप को फिर से लोड करने के लिए आप छोटी सी चाल को एप्लिकेशन के web.xml पर जा सकते हैं और बस इसे स्पर्श कर सकते हैं।

touch web.xml

बिल्ला आवेदन हर बार यह इस फाइल पर एक परिवर्तन, अगर आप बस इसे छूने, आप वास्तव में फ़ाइल, बस टाइमस्टैम्प संशोधित नहीं कर रहे हैं पर ध्यान पुनः लोड।

+0

के लिए देख रहा था यह केवल तभी सही है जब आपके पास ''ऑटोडिएट = सत्य' विशेषता है ' 'तत्व (डिफ़ॉल्ट रूप से)। –

+0

मुझे विश्वास है कि आप यह कहना चाहते हैं कि यह ऐप को फिर से तैनात करता है। यदि आप विस्फोटित युद्ध निर्देशिका में एक संपत्ति फ़ाइल जाते हैं और बदलते हैं और फिर युद्ध को स्पर्श करते हैं, तो यह मूल रूप से युद्ध में मूल रूप से आपके सभी परिवर्तनों को रीसेट कर देगा। – jbu