2013-01-14 44 views
13

में डिफ़ॉल्ट एप्लिकेशन सेट करना मैं उन धागे से गुज़र चुका हूं जो बताते हैं कि किसी दिए गए WAR (abc.war कहें) को टॉमकैट में डिफ़ॉल्ट वेब-ऐप के रूप में कॉन्फ़िगर कैसे करें।टॉमकैट 7

या तो

ROOT.war को abc.war का नाम बदलें

या

$ में एक संदर्भ ROOT.xml {tomcat.home} बनाएं/conf/कैटालिना/localhost पथ = "" और डॉकबेस युद्ध के सापेक्ष/पूर्ण पथ पर सेट (डबल तैनाती से बचने के लिए वेबपैस के बाहर abc.war को रखते हुए)।

दोनों समाधानों में ROOT.war वेबपैप्स (ऐपबेस) निर्देशिका में परिणाम होता है। हालांकि मैं वेबएप में युद्ध नाम (abc.war) को बनाए रखना चाहता हूं और इसे प्राप्त करने के लिए एक अलग ROOT.war नहीं है।

मेरे मामले में काम करने वाला एक समाधान < होस्ट > सर्वर.xml में एक संदर्भ जोड़ रहा था। लेकिन Tomcat 7 Doc के अनुसार, सीधे server.xml में संदर्भ जोड़ने की अनुशंसा नहीं की जाती है।

क्या कोई मुझे वैकल्पिक विकल्प दे सकता है?

धन्यवाद।

+0

दूसरा दृष्टिकोण – TheWhiteRabbit

+0

मैं server.xml के होस्ट टैग के भीतर के साथ आगे बढ़ गया। –

+1

http://wiki.apache.org/tomcat/HowTo#How_do_I_make_my_web_application_be_the_Tomcat_default_application.3F इसे देखें, आपको पूरा उत्तर मिल सकता है – madhu

उत्तर

19

विस्तृत दृष्टिकोण

सबसे पहले विधि:

पहले बंद अपने बिल्ला [बिन निर्देशिका से (sh shutdown.sh)] तो आप अपने बिल्ला webapps की सभी सामग्री को हटाना होगा फ़ोल्डर (rm -fr *) तो अपनी WAR फ़ाइल का नाम बदलें ROOT.war अंत में अपना टॉमकैट [वें से शुरू करें ई बिन निर्देशिका (sh startup.sh)]

दूसरा तरीका:

CATALINA_BASE/webapps में अपने युद्ध फ़ाइल छोड़ देते हैं, अपने मूल नाम के तहत - सर्वर में अपने होस्ट तत्व में autoDeploy और deployOnStartup बंद कर देते हैं। एक्सएमएल फ़ाइल। सर्वर.xml में सभी अनुप्रयोग संदर्भों को स्पष्ट रूप से परिभाषित करता है, पथ और डॉकबेस दोनों निर्दिष्ट करता है। आपको यह करना होगा, क्योंकि आपने सभी टोमकैट ऑटो-तैनाती तंत्र अक्षम कर दिए हैं, और टॉमकैट अब आपके अनुप्रयोगों को पर तैनात नहीं करेगा जब तक कि यह server.xml में अपना संदर्भ नहीं पाता।

नोट:

यह पिछले विधि भी संकेत मिलता है कि कि किसी भी आवेदन करने के लिए किसी भी परिवर्तन करने के लिए, आप बंद करो और बिलाव पुनः आरंभ करना होगा।

तीसरा विधि: CATALINA_BASE/webapps के बाहर

प्लेस अपने युद्ध फ़ाइल (यह बाहर डबल तैनाती को रोकने के लिए होना चाहिए)।
CATALINA_BASE/conf// में ROOT.xml नाम की एक संदर्भ फ़ाइल रखें। इस संदर्भ फ़ाइल में एकल तत्व में आपके युद्ध फ़ाइल के स्थान पर इंगित करने के लिए डॉकबेस विशेषता होनी चाहिए। पथ तत्व सेट नहीं किया जाना चाहिए - यह 0xकेस ROOT.xml में .xml फ़ाइल के नाम से लिया गया है। विवरण के लिए उपरोक्त संदर्भ कंटेनर देखें।

+1

ध्यान रखें, तीसरी विधि के साथ युद्ध फ़ाइल वेबएप फ़ोल्डर में तैनात नहीं होगी , मानते हुए कि आपने server.xml में डिफ़ॉल्ट रखा है। साथ ही, यदि आपके पास myApp.war है और आप संदर्भ रूट/foo/bar होना चाहते हैं तो आप अपनी xml फ़ाइल foo # bar.xml – Striker

+1

नाम देंगे, मैंने आपके तीसरे समाधान की कोशिश की है लेकिन यह मेरे लिए काम नहीं कर रहा है। मेरा ऐप नाम 'springExample' है, मैंने इसे वेबपैप्स डीआईआर के बाहर 'C: \ Tomcat \ springExample.war' के तहत रखा है। और फिर मैंने 'सीओ: \ टोमकैट \ conf \ Catalina \ localhost \ ROOT.xml' में' ROOT.xml' फ़ाइल बनाई। ROOT.xml की सामग्री ' <संदर्भ पुनः लोड करने योग्य = "सत्य" पथ = "" docBase = "springExample" /> '। और सर्वर को पुनरारंभ किया। कृपया मुझे बताओ कि मैं गलत कहां कर रहा हूं। –

+1

मैंने इसे 'डॉकबेस विशेषता मान 'में बदलकर इसे काम करने में कामयाब रहा। लेकिन क्या आप मुझे अब बता सकते हैं कि 'टोमकैट' इस 'युद्ध' फाइल को निकालने जा रहा है। और इसे 'टोमकैट ऐप मैनेजर वेब इंटरफेस' के माध्यम से प्रबंधित किया जा सकता है। धन्यवाद ... –