2009-09-22 14 views
21

के अंदर फ़ाइलों की तलाश में है मैंने सफलतापूर्वक जेट्टी को टेस्ट एप्लिकेशन पर एम्बेड किया। यह मुद्दों के बिना फाइलों की सेवा कर सकते हैं। अब मैं जानना चाहता हूं कि जेटी के लिए अपनी जार फ़ाइल के अंदर मौजूद फाइलों की सेवा करना संभव है या नहीं।एंबेडेड जेटी अपनी जार फ़ाइल

क्या किसी को पता है कि यह संभव है?

उत्तर

-2

शायद एक हैक के अधिक, लेकिन वास्तव में ज़िप फ़ाइलें नहीं हैं? (सुनिश्चित नहीं है) क्या आप उन्हें अस्थायी फ़ोल्डर में अनजिप कर सकते हैं और वहां से उनकी सेवा कर सकते हैं?

+1

मैं कर सकता था, लेकिन मैं सादगी उद्देश्यों के लिए एक जार के अंदर एक स्वयं निहित वेब एप्लिकेशन चाहता हूं। :) – LaSombra

+1

असल में जेटी यह आंतरिक रूप से करता है यदि आप वेबपैप फ़ोल्डर सेट करने का प्रयास करते हैं, तो वह इतना दूर नहीं था। – fd8s0

-7

उत्तर मिला और यह जेटी नहीं है, यह विनस्टोन है। http://winstone.sf.net

+0

लेकिन ओपी ने जेटी के बारे में पूछा ... – MTCoster

+1

यह उत्तर ओपी द्वारा है ... – Asaf

+1

डाउन-वोटिंग क्योंकि आप ओपी हैं, फिर भी यह समाधान वास्तव में समाधान नहीं है। और यह एक बेहद दुर्लभ स्थिति होगी जहां आपके द्वारा सामना किए जाने वाले मुद्दे पर एक लड़का इस समाधान के साथ जाएगा। – alok

37

एक उदाहरण http://docs.codehaus.org/display/JETTY/Embedding+Jetty

पर जेट्टी embedding पृष्ठ पर सूचीबद्ध है चाल अपने classpath स्थान के लिए एक फ़ाइल URL बनाने के लिए है।

String webDir = this.class.getClassLoader().getResource("com/company/project/mywebdir").toExternalForm(); 

ServletContextHandler context = new ServletContextHandler(); 
context.setContextPath("/"); 
context.setResourceBase(webDir); 
+1

कौन सा क्लास इस कोड को निष्पादित करना है? – phtrivier

+0

@phtrivier वह कक्षा जहां आप org.mortbay.jetty.Server या org.eclipse.jetty.server.Server को चालू करते हैं। –

+0

किसी भी विचार को क्या करना है यदि 'request.getRequestDispatcher (...)। आगे (req, resp) को JAR फ़ाइल से चलते समय 'WEB-INF' के अंतर्गत' .jsp' फ़ाइलों को नहीं ढूंढ रहा है? –

5

यदि आप स्प्रिंग को समीकरण में फेंक देते हैं तो यह बहुत आसान है। और यहां यह जाता है:

 
... 

WebAppContext webAppContext = new WebAppContext(); 
webAppContext.setServer(server); 
webAppContext.setContextPath("/"); 
webAppContext.setResourceBase(new ClassPathResource("webapp").getURI().toString()); 

server.addHandler(webAppContext); 

.... 

इससे जेटी को जार फ़ाइल के अंदर आवश्यक वेब संसाधन मिलेंगे।

+0

धन्यवाद। मैंने इसे मैवेन + असेंबली प्लगइन के साथ किया :) – LaSombra

+1

'सर्वर' किस प्रकार का है? –

+1

@WimDeblauwe org.eclipse.jetty.server.Server – fionbio

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