2012-12-04 36 views
5

मेरे परिदृश्य निम्नलिखित है। यह WebApp.war वेब-INF में शामिल/निम्नलिखित पुस्तकालयों lib:लोड बाहरी पुस्तकालय

  • lib_a.jar
  • lib_b.jar

मैं एक अन्य पुस्तकालय है, lib_vendor.jar कहते हैं, कि मैं नहीं कर सकता लाइसेंसिंग मुद्दों के कारण WebApp/WEB-INF/lib के भीतर तैनात करें ताकि मैं अपने ग्राहकों को एप्लिकेशन स्थापना के बाद tomcat/lib में इस लाइब्रेरी की प्रतिलिपि बनाने दे। लेकिन lib_vendor.jar के लिए lib_a.jar और lib_b.jar की आवश्यकता है जो वेब एप्लिकेशन क्लास लोडर में लोड हैं, मैं lib_vendor.jar का उपयोग नहीं कर सकता।

वेब अनुप्रयोग के उसी क्लासलोडर में मैं बाहरी पुस्तकालय (वेब-आईएनएफ/lib में नहीं) कैसे लोड कर सकता हूं?

+0

"लाइसेंसिंग समस्याओं के कारण" लाइसेंसिंग समस्याओं को हल करने का प्रयास करें ... – NimChimpsky

+0

सुनिश्चित नहीं है लेकिन आप कक्षापथ में लाइब्रेरी जोड़ सकते हैं। इसे 'lib' निर्देशिका में जोड़ने के लिए आवश्यक नहीं है। –

+0

निम चिम्पस्की, लाइसेंसिंग समस्याओं को हल करना संभव नहीं है –

उत्तर

6

चूंकि आप टोमकैट का उपयोग कर रहे हैं, तो आप VirtualWebappLoader का लाभ उठा सकते हैं।

जोड़ें META-INF/context.xml whith

<?xml version="1.0" encoding="UTF-8"?> 
<Context path="/somepath/myapp"> 
    <Loader className="org.apache.catalina.loader.VirtualWebappLoader" 
       virtualClasspath="/somedir/*.jar"/> 
</Context> 

भी याद रखें कि virtualClasspath विशेषता एक निरपेक्ष पथ, के रूप में सही ढंग से नीचे टिप्पणी में कहा गया होना चाहिए।

+1

बस यह पुष्टि करने के लिए कि यह वास्तव में सही उत्तर है, जैसा कि [यहां बताया गया है) (http://tomcat.10.x6.nabble.com/how-to-use-VirtualWebappLoader -इ-इन-मेटा-आईएनएफ-संदर्भ-एक्सएमएल-या-प्रोग्रामेटिकली-ऑन-स्टार्टअप-टीपी2017324p2017326.html), यह एक पूर्ण डीआईआर होना चाहिए। इस तरह के सापेक्ष काम नहीं करता है। – lucasvc

+1

@datakey धन्यवाद, संपादित करें। –