पर वेब एप्लिकेशन की तैनाती मैं चल रहे टोमकैट पर वेब-एप्लिकेशन की तैनाती पर कुछ सर्वोत्तम अभ्यास एकत्र करना चाहता हूं। बहुत समय पहले मुझे अपने वेब-एप्लिकेशन की तैनाती प्रक्रिया का वर्णन करना पड़ा था और प्रक्रिया बल्कि भ्रमित दिखाई दे रही थी।चल रहे टोमकैट
कहें, हमारे पास एक WAR फ़ाइल (foo.war) में सही तरीके से कॉन्फ़िगर किया गया है और अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं है। इस मामले में, तैनाती प्रक्रिया अपेक्षाकृत आसान है:
- foo.war फ़ाइल को $ CATALINA_HOME/webapps निर्देशिका में कॉपी करें। यदि एप्लिकेशन सही ढंग से शुरू होता है, तो एप्लिकेशन स्वचालित रूप से $ CATALINA_HOME/webapps/foo निर्देशिका पर तैनात होगा।
आवेदन undeploy करने के लिए:
- $ CATALINA_HOME/webapps से foo.war फ़ाइल निकालें। यदि एप्लिकेशन सही ढंग से अनलोड हो जाता है, तो इसे अनलोड किया जाएगा और $ CATALINA_HOME/webapps/foo हटा दिया जाएगा।
अब मैं अपने चल रहे एप्लिकेशन में कुछ संदर्भ पैरामीटर को ओवरराइड करना चाहता हूं। docs पढ़ा है, सब मैं क्या करने की जरूरत:
- एक context.xml foo.xml
- कॉपी $ CATALINA_BASE/conf करने के लिए फ़ाइल/[EngineName]/[होस्ट नाम]/निर्देशिका बुलाया फ़ाइल बनाएँ।
दुर्भाग्यवश, यह काम नहीं किया: एप्लिकेशन पुनरारंभ नहीं होगा। अनुभवजन्य रूप से, हमने पाया कि एकमात्र कामकाजी समाधान तब होता है जब युद्ध फ़ाइल $ CATALINA_HOME/webapps के बाहर किसी स्थान पर तैनात की जाती है। इसके अलावा, WAR फ़ाइल में कॉन्फ़िगर करने योग्य संदर्भ मानकों के डिफ़ॉल्ट मानों को web.xml में निर्दिष्ट किया जाना चाहिए, क्योंकि WAR फ़ाइल में context.xml को तब संदर्भित नहीं किया जाता है जब कोई context.xml बाहर होता है।
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="/path-to-deployment-directory/foo.war">
<Parameter name="myparam" value="newvalue" override="false"/>
</Context>
अगर आप 'NEWVALUE' युद्ध के web.xml में निर्दिष्ट मान ओवरराइड करना चाहते पैरामीटर के लिए ओवरराइड = false निर्दिष्ट करना न भूलें:
यहाँ foo.xml का एक आसान उदाहरण है । यह हमारे लिए स्पष्ट नहीं था।
इस प्रकार, एक चल बिलाव को एक आवेदन को तैनात करने की:
- एक context.xml foo.xml बुलाया
- कॉपी $ CATALINA_BASE/conf करने के लिए फ़ाइल/[EngineName]/[होस्टनाम फ़ाइल बनाएँ ]/ निर्देशिका।
- foo.xml के docBase में निर्दिष्ट स्थान पर foo.war की प्रतिलिपि बनाएँ; एप्लिकेशन स्वचालित रूप से तैनात होगा।
लागू करने के लिए नई संदर्भ पैरामीटर:
- foo.xml लिए पैरामीटर मान जोड़ें और फ़ाइल को सहेजने; एप्लिकेशन स्वचालित रूप से फिर से तैनात होगा।
आवेदन undeploy करने के लिए:
- $ CATALINA_BASE/conf/[EngineName]/[होस्ट नाम]/निर्देशिका
नोट foo को हटाने से foo.xml निकालें। युद्ध भी काम करेगा, लेकिन foo.xml को भी हटा देगा।
अब तक, मैं है निम्नलिखित प्रश्न:
- यह एक सबसे अच्छा अभ्यास बिल्कुल बिल्ला को रोके बिना एक वेब आवेदन को तैनात करने की है? मैंने एक राय सुना है कि चल रहे टोमकैट पर तैनाती की आवश्यकता नहीं होती है क्योंकि लोग प्रत्येक एप्लिकेशन को एक अलग टोमकैट में चलाते हैं।
- क्या WAR फ़ाइलों को $ CATALINA_HOME/webapps में कॉपी करना अच्छा विचार है या उन्हें बेहतर स्थान पर रखा जाना चाहिए?
- मैं एक आवेदन $ CATALINA_HOME के लिए तैनात/webapps
- क्यों एक आवेदन की तैनाती के लिए catalina.out में कोई जानकारी लाइन है कैसे कॉन्फ़िगर कर सकते हैं और वहाँ undeployment के लिए एक है? क्या यह विन्यास योग्य है?