2013-02-19 7 views
8

क्या यह एम्बेडेड जेटी का उपयोग निर्देशिका एक्स से स्थिर फाइलों को करने के लिए संभव है लेकिन यूआरएल वाई में मैप किया गया है? मेरे पास निर्देशिका "वेब" के तहत संग्रहीत स्थिर फ़ाइलें हैं, लेकिन मैं चाहता हूं कि यूआरएल http://host/myapp जैसा कुछ हो।नक्शा जेटी संसाधन हैडलर एक यूआरएल

मैं पहले से ही सफलतापूर्वक एक सर्वर निम्नलिखित तरीके से ResourceHandler के साथ विन्यस्त भाग गया है:

ResourceHandler ctx = new ResourceHandler(); 
ctx.setResourceBase("path-to-web"); 
HandlerList list = new HandlerList(); 
list.addHandler(ctx); 
... 
server.setHandler(list); 

लेकिन परिणाम और नहीं के तहत वांछित यूआरएल मानचित्रण /web अंतर्गत फ़ाइलें में सेवारत है।

उत्तर

18

संसाधन हैडलर का कोई संदर्भ कॉन्फ़िगर करने योग्य नहीं है, लेकिन आप इसे प्राप्त करने के लिए इसे कॉन्टेक्स्ट हैंडलर में बस लपेट सकते हैं।

ऐसा करें:

ResourceHandler resHandler = new ResourceHandler(); 
resHandler.setResourceBase("path-to-web"); 
ContextHandler ctx = new ContextHandler("/my-files"); /* the server uri path */ 
ctx.setHandler(resHandler); 
server.setHandler(ctx); 

कि फाइल सिस्टम path-to-web

1

ऊपर जेट्टी 9 के लिए काम नहीं करता है की ResourceHandler सामग्री के रूप में /my-files में काम करेगा, लेकिन यह करता है:

ContextHandler contextHandler = new ContextHandler("/my-files"); 
contextHandler.setResourceBase("/tmp/static"); 

ResourceHandler resourceHandler = new ResourceHandler(); 
contextHandler.setHandler(resourceHandler); 

server.setHandler(contextHandler); 
+0

यह जेटी 9 के साथ काम नहीं कर रहा है 9. क्या आप कुछ डॉक्टर को लिंक प्रदान कर सकते हैं? –

+0

मैंने जेटी 9 के लिए एक अलग सवाल बनाया है - http://stackoverflow.com/questions/28346438/resourcehandler-stop-hosting-files-with-jetty-9-404-not-found-error-works-fin होगा अगर आप मुझे एक संकेत देते हैं तो खुश हैं –

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