2012-03-12 13 views
5

अब मैं जार लोड कर सकता हूं जो ईएआर/lib के तहत है। लेकिन मैं अन्य अनुप्रयोगों के उपयोग के लिए जार को एक आम पथ पर रखना चाहता हूं। मैंने पाया कि jboss-deployment-struct.xml फ़ाइल का टैग यह कर सकता है। लेकिन यह काम नहीं करता है। मुझे क्लास नॉटफाउंड अपवाद मिला। मुझे नहीं पता क्यों?मैं जेबॉस 7 पर बाहरी जार का उपयोग कैसे कर सकता हूं?

<deployment> 
    <resources> 
     <resource-root path="/common/test.jar" /> 
    </resources> 
</deployment> 

उत्तर

11

विभिन्न अनुप्रयोगों में वैश्विक पुस्तकालयों का उपयोग करने का एक तरीका उन्हें मॉड्यूल के रूप में उपलब्ध कराकर पहुंचा जा सकता है। इसके लिए, उस सर्वर द्वारा मॉड्यूल का विस्तार करें जो आप सर्वर प्रदाता के रूप में प्रदान कर रहे हैं।

उदाहरण: अपने test.jar उपलब्ध सभी के लिए आवेदन करने के लिए, मॉड्यूल का नाम और एक main उपनिर्देशिका (जैसे modules/commons/test/main) के साथ एक फ़ोल्डर बनाने के।

अपनी लाइब्रेरी को वहां रखें और मॉड्यूल विवरण फ़ाइल module.xml नाम से रखें। उदाहरण सामग्री:

<module xmlns="urn:jboss:module:1.0" name="commons.test"> 
    <resources> 
     <resource-root path="test.jar"/> 
    </resources> 
</module> 

अब पुस्तकालय सभी आवेदनों के लिए उपलब्ध है। मॉड्यूल तक पहुंच प्राप्त करने के लिए, आपके एप्लिकेशन को अभिव्यक्ति में निर्भरता को परिभाषित करना होगा।

आवेदन MANIFEST.MF:


Dependencies: commons.test 

यह भी निर्माण के समय के दौरान Maven द्वारा किया जा सकता। विवरण https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7 विवरण

कृपया ध्यान दें कि आप सर्वर को स्वयं संशोधित कर रहे हैं। आपके मॉड्यूल का उपयोग कर सभी एप्लिकेशन इसके आधार पर हैं। मॉड्यूल commons.test पर निर्भरता वाला एक अनुप्रयोग उस सर्वर पर तैनात नहीं किया जाएगा जिसमें यह मॉड्यूल प्रदान नहीं किया गया है।

+0

क्या सर्वर (वैश्विक) मॉड्यूल को छूए बिना ऐसा करना संभव है? यानी, ईएआर के अंदर मॉड्यूल बनाना? – Sriram

+0

क्या प्रत्येक पुस्तकालय निर्दिष्ट करने के बजाय जंगली कार्ड की संभावना है? – Inv3r53

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

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