.War और .ear फ़ाइल में क्या अंतर है?
.War और .ear फ़ाइल में क्या अंतर है?
जवाबों:
से GeekInterview :
J2EE एप्लिकेशन में, मॉड्यूल को उनकी कार्यक्षमता के आधार पर EAR, JAR और WAR के रूप में पैक किया जाता है
JAR: EJB मॉड्यूल जिसमें एंटरप्राइज़ जावा बीन्स (क्लास फाइल्स) होते हैं और EJB परिनियोजन डिस्क्रिप्टर को JAR फ़ाइलों के साथ JAR एक्सटेंशन के रूप में पैक किया जाता है।
WAR: वेब मॉड्यूल जिसमें सर्वलेट क्लास फाइल्स, JSP फाइल्स, सपोर्टिंग फाइल्स, GIF और HTML फाइल्स को .AR (वेब आर्काइव) एक्सटेंशन वाली JAR फाइल के रूप में पैक किया जाता है।
EAR: उपरोक्त सभी फाइलें (.jar और .war) .AR (एंटरप्राइज आर्काइव) एक्सटेंशन वाली JAR फाइल के रूप में पैक की जाती हैं और एप्लीकेशन सर्वर में तैनात की जाती हैं।
एक युद्ध (वेब संग्रह) एक मॉड्यूल है कि एक में लोड हो जाता है वेब कंटेनर एक के जावा अनुप्रयोग सर्वर । एक जावा एप्लिकेशन सर्वर में दो कंटेनर (रनटाइम वातावरण) होते हैं - एक वेब कंटेनर है और दूसरा एक ईजेबी कंटेनर है।
वेब कंटेनर मेजबान वेब JSP या सर्वलेट API पर आधारित अनुप्रयोगों - एक की अधिक ताकि - वेब अनुरोध से निपटने के लिए विशेष रूप से डिजाइन वितरित कंप्यूटिंग के अनुरोध / प्रतिक्रिया शैली । एक वेब कंटेनर को WAR फ़ाइल के रूप में पैक करने के लिए वेब मॉड्यूल की आवश्यकता होती है - जो कि फ़ोल्डर web.xml
में एक फ़ाइल के साथ एक विशेष JAR फ़ाइल है WEB-INF
।
एक EJB कंटेनर विस्तारित व्यापार कार्यक्षमता प्रदान करने के लिए डिज़ाइन किए गए EJB API पर आधारित एंटरप्राइज़ जावा बीन्स की मेजबानी करता है, जैसे कि घोषणात्मक लेनदेन, घोषणात्मक विधि स्तर सुरक्षा और मल्टीप्रोकोल समर्थन - इसलिए वितरित कंप्यूटिंग की एक आरपीसी शैली का अधिक । EJB कंटेनरों को JJ फ़ाइलों के रूप में पैक करने के लिए EJB मॉड्यूल की आवश्यकता होती है - इनमें फ़ोल्डर ejb-jar.xml
में एक फ़ाइल होती है META-INF
।
एंटरप्राइज़ अनुप्रयोगों में एक या अधिक मॉड्यूल शामिल हो सकते हैं जो या तो वेब मॉड्यूल (WAR फ़ाइल के रूप में पैक किए गए), EJB मॉड्यूल (JAR फ़ाइल के रूप में पैक किए गए) या दोनों हो सकते हैं। एंटरप्राइज़ एप्लिकेशन को EAR फ़ाइलों के रूप में पैक किया जाता है - ये विशेष JAR फाइलें होती हैं जिनमें फ़ोल्डर application.xml
में एक फ़ाइल होती है META-INF
।
मूल रूप से, EAR फाइलें WAR फाइलें और JAR फाइलों से युक्त एक सुपरसेट होती हैं । Java अनुप्रयोग सर्वर WAR फ़ाइल में स्टैंडअलोन वेब मॉड्यूल की तैनाती की अनुमति देते हैं, हालांकि आंतरिक रूप से, वे EAR फ़ाइलों को WAR फ़ाइलों के आसपास एक आवरण के रूप में बनाते हैं। टॉमकैट और जेट्टी जैसे स्टैंडअलोन वेब कंटेनर ईएआर फ़ाइलों का समर्थन नहीं करते हैं - ये पूर्ण-अनुप्रयोग अनुप्रयोग सर्वर नहीं हैं। इन कंटेनरों में वेब अनुप्रयोगों को केवल WAR फ़ाइलों के रूप में तैनात किया जाना है।
एप्लिकेशन सर्वर में, ईएआर फाइलों में एप्लिकेशन सुरक्षा भूमिका मानचित्रण, ईजेबी संदर्भ मानचित्रण और वेब मॉड्यूल के संदर्भ रूट URL मैपिंग जैसे कॉन्फ़िगरेशन होते हैं।
वेब मॉड्यूल और ईजेबी मॉड्यूल के अलावा, ईएआर फाइलों में आरएआर फाइलों के रूप में पैक किए गए कनेक्टर मॉड्यूल और आरएआर फाइल के रूप में पैक किए गए क्लाइंट मॉड्यूल भी हो सकते हैं।
.jar
, .war
और .ear
फ़ाइलों सरल ज़िप अभिलेखागार, इस प्रकार किसी भी प्रोग्राम है कि साधारण .zip फ़ाइलों को संभाल सकता है द्वारा खोला जा करने में सक्षम हैं।
युद्ध - वेब संग्रह। यह सर्वलेट मानक के अनुसार वेब एप्लिकेशन को तैनात करने के लिए उपयोग किया जाता है। यह एक जार फाइल है जिसमें एक विशेष निर्देशिका होती है जिसे WEB-INF कहा जाता है और इसके अंदर कई फाइलें और निर्देशिकाएं (web.xml, lib, classes) और साथ ही सभी HTML, JSP, चित्र, CSS, जावास्क्रिप्ट और वेब एप्लिकेशन के अन्य संसाधन होते हैं।
कान - उद्यम संग्रह। इसका उपयोग EJBs, वेब एप्लिकेशन और 3rd पार्टी लाइब्रेरी वाले एंटरप्राइज़ एप्लिकेशन को लागू करने के लिए किया जाता है। यह एक जार फ़ाइल भी है, इसमें एपीपी-इन नामक एक विशेष निर्देशिका है जिसमें application.xml फ़ाइल होती है, और इसमें जार और युद्ध फाइलें होती हैं।
WAR (वेब आर्काइव) फाइलों में सर्वलेट क्लास फाइलें, JSP (जावा सर्वलेट पेज), HTML और ग्राफिकल फाइलें और अन्य सहायक फाइलें होती हैं।
EAR (एंटरप्राइज़ आर्काइव) फ़ाइलों में JAR फ़ाइलों के साथ कोड वाली WAR फाइलें होती हैं।
उन फ़ाइलों में अन्य चीजें भी हो सकती हैं, लेकिन उनके मूल रूप से उनके लिए क्या मतलब है जैसे वे ध्वनि का अर्थ है: वेब-प्रकार के सामान के लिए WAR, उद्यम प्रकार के सामान के लिए EAR (WARs, कोड, कनेक्टर्स एट अल)।
जार फाइलें
एक JAR (जावा आर्काइव के लिए छोटा) फ़ाइल एक ही में कई फ़ाइलों के संयोजन की अनुमति देता है। '.Jar' के साथ फाइल; विस्तार का उपयोग सॉफ्टवेयर डेवलपर्स द्वारा जावा कक्षाओं और विभिन्न मेटाडेटा को वितरित करने के लिए किया जाता है। ये पुस्तकालयों और संसाधन फ़ाइलों के साथ-साथ सहायक फ़ाइलों (जैसे संपत्ति फ़ाइलें) को भी रखते हैं।
उपयोगकर्ता जावा डेवलपमेंट किट (JDK) '.jar' कमांड के साथ JAR फाइलें निकाल और बना सकते हैं। जिप टूल्स का भी इस्तेमाल किया जा सकता है।
JAR फ़ाइलों में वैकल्पिक मैनिफ़ेस्ट फ़ाइलें होती हैं। मैनिफ़ेस्ट फ़ाइल के भीतर प्रविष्टियाँ JAR फ़ाइल के उपयोग को निर्धारित करती हैं। फ़ाइल वर्ग के लिए 'मुख्य' वर्ग विनिर्देश फ़ाइल को एक अलग या 'स्टैंड-अलोन' प्रोग्राम के रूप में दर्शाता है।
WAR फाइलें
एक WAR (या वेब एप्लिकेशन संग्रह) फ़ाइलों में XML (एक्सटेंसिबल मार्कअप लैंग्वेज) फाइलें, जावा कक्षाएं, साथ ही इंटरनेट एप्लिकेशन के प्रयोजनों के लिए जावा सर्वर पेज शामिल हो सकते हैं। यह पुस्तकालयों और वेब पृष्ठों को चिह्नित करने के लिए भी कार्यरत है जो वेब अनुप्रयोग बनाते हैं। '.War' एक्सटेंशन वाली फ़ाइलों में सर्वर या JSP (जावा सर्वर पेज) कंटेनरों के साथ उपयोग के लिए वेब ऐप होता है। इसमें जेएसपी, एचटीएमएल (हाइपरटेक्स्ट मार्कअप लैंग्वेज), जावास्क्रिप्ट और उपर्युक्त वेब ऐप बनाने के लिए विभिन्न फाइलें हैं।
WAR फ़ाइल को विशेष निर्देशिकाओं और फ़ाइलों के लिए अनुमति देने के लिए संरचित किया जाता है। कोड की सत्यता दिखाने के लिए इसमें एक डिजिटल हस्ताक्षर (एक JAR फ़ाइल की तरह) भी हो सकता है।
EAR फ़ाइलें
एक ईएआर (एंटरप्राइज आर्काइव) फाइल जार और डब्ल्यूएआर फाइलों को एक एकल संग्रह में विलय कर देती है। '.Ear' एक्सटेंशन वाली इन फ़ाइलों में मेटाडेटा के लिए एक निर्देशिका है। मॉड्यूल को ऐप सर्वर के भीतर विभिन्न मॉड्यूल के सुचारू और एक साथ संचालन के लिए संग्रह पर पैक किया जाता है।
EAR फ़ाइल में परिनियोजन वर्णनकर्ता (जो XML फ़ाइलें हैं) हैं जो प्रभावी रूप से विभिन्न मॉड्यूलों की तैनाती को निर्धारित करते हैं।
देखें: http://www.wellho.net/mouth/754_tar-jar-war-ear-sar-files.html
टार (टेप अभिलेखागार) - प्रयुक्त प्रारूप फ़ाइलनाम की धारावाहिक इकाइयों में लिखा गया है, फ़ाइल करें, फ़ाइलडेटा - कोई संपीड़न नहीं। विशाल हो सकता है
जार (जावा आर्काइव) - उपयोग की जाने वाली संपीड़न तकनीक - आम तौर पर कक्षा / जावा फाइलों जैसी जावा जानकारी होती है। लेकिन किसी भी फाइल और निर्देशिका संरचना को शामिल कर सकते हैं
युद्ध (वेब अनुप्रयोग अभिलेखागार) - जार फ़ाइलों की तरह ही केवल JSP / तैनाती के उद्देश्यों के लिए सर्वलेट युक्ति के अनुसार विशिष्ट निर्देशिका संरचना है
कान (उद्यम अभिलेखागार) - जार फ़ाइलों की तरह। जे 2 ईई आवश्यकताओं के बाद निर्देशिका संरचना है ताकि इसे जे 2 ईई एप्लिकेशन सर्वर पर तैनात किया जा सके। - कई JAR और WAR फ़ाइलों को शामिल कर सकते हैं
ईयर फाइलें एप्लिकेशन सर्वर के साथ इंटरैक्शन को कॉन्फ़िगर करने के लिए अधिक विकल्प प्रदान करती हैं।
उदाहरण के लिए: यदि एप्लिकेशन सर्वर का हाइबरनेट संस्करण आपके आश्रितों द्वारा उपलब्ध कराए गए पुराने से अधिक है, तो आप JBOSS के लिए कक्षा-कर्ताओं को अलग करने और संघर्षों से बचने के लिए निम्नलिखित को कान-परवर्ती- jboss-beans.xml में जोड़ सकते हैं:
<bean name="EARClassLoaderDeployer" class="org.jboss.deployment.EarClassLoaderDeployer">
<property name="isolated">true</property>
</bean>
या src / main / application / META-INF / jboss-app.xml:
<?xml version="1.0"?>
<jboss-app>
<loader-repository>
loader=nameofyourear.ear
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</jboss-app>
यह सुनिश्चित करेगा कि आपके एप्लिकेशन और एप्लिकेशन सर्वर के बीच कोई क्लास लोडर संघर्ष नहीं है।
आम तौर पर क्लास लोडर तंत्र इस तरह काम करता है:
जब क्लास लोडिंग अनुरोध एक क्लास लोडर को प्रस्तुत किया जाता है, तो यह पहले अपने माता-पिता के क्लास लोडर से अनुरोध पूरा करने के लिए कहता है। माता-पिता, बदले में अपने माता-पिता से कक्षा के लिए तब तक पूछते हैं जब तक कि अनुरोध पदानुक्रम के शीर्ष पर नहीं पहुंच जाता। यदि पदानुक्रम के शीर्ष पर क्लास लोडर अनुरोध को पूरा नहीं कर सकता है, तो चाइल्ड क्लास लोडर जिसने इसे कक्षा लोड करने के लिए जिम्मेदार है।
क्लास लोडर को अलग करने से, आपका कान क्लास लोडर माता-पिता (= JBoss / अन्य AS क्लास लोडर) में नहीं दिखेगा। जहाँ तक मुझे पता है, यह युद्ध फाइलों के साथ संभव नहीं है।
J2EE तीन प्रकार के अभिलेखागार को परिभाषित करता है:
जावा अभिलेखागार (JAR) एक JAR फ़ाइल एक या एक से अधिक जावा कक्षाएं, एक प्रकटन, और एक डिस्क्रिप्टर को एन्क्रिप्ट करती है। JAR फाइलें संग्रह का सबसे निचला स्तर है। E2Bs और क्लाइंट-साइड Java अनुप्रयोगों की पैकेजिंग के लिए J2EE में JAR फ़ाइलों का उपयोग किया जाता है।
वेब अभिलेखागार (WAR) WAR फाइलें JAR फाइलों के समान हैं, सिवाय इसके कि वे विशेष रूप से सर्वलेट्स, JSPs और सहायक कक्षाओं से बने वेब अनुप्रयोगों के लिए हैं।
एंटरप्राइज आर्काइव्स (ईएआर) “एक ईएआर फ़ाइल में उन सभी घटकों को शामिल किया जाता है जो किसी विशेष J2EE एप्लिकेशन को बनाते हैं।
परियोजना के परिवहन के लिए तैनाती को आसान बनाया। एक फ़ाइल में संपीड़ित करने की आवश्यकता है। JAR (जावा संग्रह) .class फ़ाइलों का समूह
WAR (वेब संग्रह) - प्रत्येक युद्ध एक वेब अनुप्रयोग का प्रतिनिधित्व करता है - केवल वेब संबंधित तकनीकों जैसे सर्वलेट, jsps का उपयोग किया जा सकता है। - टॉमकैट सर्वर पर चला सकते हैं - वेब से संबंधित तकनीकों द्वारा विकसित वेब ऐप केवल जेएसपी सर्वलेट HTML जेएस - सूचना प्रतिनिधित्व केवल कोई लेनदेन नहीं।
ईएआर (एंटरप्राइज आर्काइव) - प्रत्येक कान एक एंटरप्राइज़ एप्लिकेशन का प्रतिनिधित्व करता है - हम ईजेबी जैसे जे 2 ई से कुछ भी उपयोग कर सकते हैं, जेएम खुशी से इस्तेमाल किया जा सकता है। - ग्लासफिश जैसे सर्वर पर चल सकता है टॉमटैट सर्वर पर नहीं। एंटरप्राइज़ ऐप j2ee से किसी भी तकनीक द्वारा किसी भी तकनीक के द्वारा विकसित किया गया है जैसे कि सभी वेब ऐप प्लस ejbs jms इत्यादि - जानकारी प्रतिनिधित्व के साथ लेनदेन करता है। जैसे। बैंक ऐप, टेलीकॉम ऐप
.JAR, .WAR and .EAR
आप एक वीडियो ट्यूटोरियल भी देख सकते हैं। यह बहुत सरल या अधिक समझने योग्य है। यह समझा जाएगा क्या है अंतर के बीच .JAR, .WAR और .EAR वीडियो ट्यूटोरियल : बीच .JAR, .WAR और .EAR अंतर