2009-08-08 10 views
7

यह काफी आसान होना चाहिए, लेकिन किसी कारण से लगभग सब कुछ मैं कोशिश बस जब मैं यह एक वेब ब्राउज़र के लिए ऊपर हुक एक 'नहीं मिला' त्रुटि वितरित करने के लिए लगता है।जेट्टी के साथ एक jarfile से स्थिर सामग्री परोसने वाले?

मेरे पास एक ही स्थिर संदर्भ है, और संसाधनबेस के लिए मुझे 'फ़ाइल: जार:/पथ/से/myjar! /।'... कोई विचार जो मुझे याद आ रहा है?

उत्तर

2

इस तरह classloader से संसाधन लोड करने के लिए,

ClassLoader classLoader = 
       Thread.currentThread().getContextClassLoader(); 

     if (classLoader == null) { 
      classLoader = getClass().getClassLoader(); 
     } 


     InputStream stream = classLoader.getResourceAsStream(name); 

आपका दृष्टिकोण निरपेक्ष पथ मान लिया गया है की कोशिश करो और यह सच है जब सर्वर तैनात किया जाता है नहीं हो सकता। जार एक और जार (युद्ध) या एक अस्थायी निर्देशिका में हो सकता है।

+0

मैं आसानी से बाद में पथ बदल सकते हैं, मैं सिर्फ अगर मैं इस सब पर काम करने के लिए प्राप्त कर सकते हैं दिखाई दे रही है, और मैं जार से एक सर्वलेट लोड हो रहा है नहीं कर रहा हूँ - बस स्थिर .html फ़ाइलें। –

+1

मुझे नहीं लगता कि अपने वाक्य रचना सही है। यह होना चाहिए, जार: फ़ाइल: /path/to/my.jar/पैकेज/फ़ाइल यदि यह विंडोज पर है, तो आप भी ड्राइव अक्षर आवश्यकता हो सकती है। –