2012-03-06 19 views
5

बिलाव प्रलेखन (http://tomcat.apache.org/tomcat-6.0-doc/config/context.html)बिलाव अपडेट context.xml नहीं बल्कि

केवल एक संदर्भ फ़ाइल मौजूद नहीं है, तो चाहिए एप्लिकेशन फ़ाइलों के अंदर $ CATALINA_BASE/conf/[enginename]/[hostname] /, व्यक्तिगत फ़ाइल में /META-INF/context.xml में एप्लिकेशन के लिए। यदि वेब एप्लिकेशन को WAR के रूप में पैक किया गया है तो /META-INF/context.xml $ CATALINA_BASE/conf/[enginename]/[hostname] पर कॉपी किया गया है और इसका नाम बदलकर एप्लिकेशन के संदर्भ पथ से मेल खाता है। एक बार इस फ़ाइल मौजूद है, यह बदला नहीं जाएगा, तो एक नए /META-INF/context.xml के साथ एक नया युद्ध मेजबान के appBase में रखा है।

बोल्ड में टेक्स्ट स्पष्ट है। लेकिन मैं सच नहीं के रूप में सूचित करता हूं। (मैं इस व्यवहार बिल्कुल जरूरत है)

ये कदम उठाएँ: context.xml साथ

  1. aaa.war webapps को META-INF
  2. कॉपी में शामिल थे। tomcat तैनाती। webapps को META-INF/context.xml बदलते
  3. प्रतिलिपि
  4. फ़ाइल conf\Catalina\localhost\aaa.xml द्वारा फ़ाइल conf\Catalina\localhost\aaa.xml ठीक
  5. परिवर्तन aaa.war बदल गया है !!!

क्या गलत है? क्या यह एक बग या छुपी हुई विशेषता है?

पृष्ठभूमि - मुद्दा मैं हल करना चाहते हैं:

विन्यास स्वतंत्र निर्माण और स्थापना। मैं युद्ध फ़ाइल जहाज करने के लिए संयंत्र। ग्राहक अपनी टोमकैट को अपनी सेटिंग्स का उपयोग करके प्रति-कॉन्फ़िगर करता है। जब मैं एक नई रिलीज भेजता हूं तो मैं कॉन्फ़िगर के बिना युद्ध को डिलीवरी करता हूं और इसे तैनात करते समय क्लाइंट विशिष्ट कॉन्फ़िगरेशन का उपयोग करता हूं।

प्रलेखन तक सबसे अच्छी जगह context.xml है लेकिन अगर यह हर बार ओवरराइट यह बिल्कुल उपयोग करने के लिए कोई अर्थ नहीं। (कारण है कि मैं JNDI और इस तरह के एक चीजों का उपयोग करता है, तो नया प्रदेय बनाया गया है निर्माण समय में किसी चीज़ को बदलना एक बड़ा विन्यास लाभ नहीं है होगा?।)

पर्यावरण: खिड़कियां, बिल्ला 6.0.33

+0

इसी तरह की समस्या: http://stackoverflow.com/questions/4158468/tomcat-context-management – takacsot

+0

उत्तर पहले से ही इस साइट में प्रस्तुत किया गया है: http://stackoverflow.com/questions/7142365/how-to-provide-a -context-विन्यास के लिए एक-वेब-आवेदन-अंडर-बिल्ला – takacsot

उत्तर

6

मैंने एक ही समस्या में भागो और दस्तावेज कम से कम अपर्याप्त है, अगर सीधे भ्रामक नहीं है।

समस्या यह है कि यदि आप वेबपैस निर्देशिका में पहले से ही तैनात WAR फ़ाइल का एक नया संस्करण कॉपी करते हैं, तो टोमकैट मौजूदा एप्लिकेशन को पुन: नियोजित नहीं करेगा बल्कि पुराने एप्लिकेशन को पूर्ववत करेगा और फिर नया एप्लिकेशन तैनात करेगा। अंतर पहले महत्वहीन प्रतीत हो सकता है, लेकिन समस्या यह है कि पुराने अनुप्रयोग की अनावश्यकता के दौरान, conf/Catalina/localhost में किसी भी संदर्भ फ़ाइलों को भी हटा दिया जाता है। फिर, मौजूदा WAR फ़ाइल से नई संदर्भ फ़ाइल को नए एप्लिकेशन की तैनाती के दौरान conf/Catalina/localhost पर कॉपी किया जाएगा।

केवल संभव समाधान मैंने पाया एक युद्ध फ़ाइल के रूप में नया आवेदन को तैनात करने की नहीं है, लेकिन बदलने के लिए या विस्तार निर्देशिका अधिलेखित करने के लिए, उदाहरण के लिए है aaa.war को webapps पर कॉपी न करें/लेकिन aaa.war को सीधे वेबएप/aaa/में अनपैक करने के लिए।

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