2011-12-27 8 views
10

मेरे पास जेएक्स-आरएस रीस्टलेट एक्सटेंशन के साथ लागू एक स्वयं होस्टेड जेएक्स-आरएस रीस्ट सेवा है।जेएक्स-आरएस के साथ स्थिर सामग्री कैसे पेश करें?

अब मुझे स्थिर सामग्री की सेवा करनी है और मैं सोच रहा था कि जेएक्स-आरएस के साथ इसे कैसे किया जाए। ध्यान दें, कि मैं संकलन समय पर भौतिक निर्देशिका संरचना नहीं जानता। तो, जैसे

http://bla-bla:8182/static/yaba/daba/doo.png 

फ़ाइल $(ROOT)/yaba/daba/doo.png लौटा दी है, जहां $(ROOT) स्थैतिक सामग्री रूट निर्देशिका है एक URL दिया।

क्या शुद्ध जेएक्स-आरएस के साथ ऐसा करना संभव है?

धन्यवाद।

संपादित

संकलन समय पर जाना जाता है:

  • स्थैतिक सामग्री रूट फ़ोल्डर
संदर्भित करने के लिए इस्तेमाल किया स्थिर सामग्री रूट फ़ोल्डर
  • HTTP URL की फाइल सिस्टम पथ

    संकलन समय पर अज्ञात:

    • रूट फ़ोल्डर की वास्तविक सामग्री - कितनी फ़ाइलें, फ़ाइल प्रकार, निर्देशिका संरचना।
  • उत्तर

    16

    बस इसे मिला।

    javax.ws.rs.Path एनोटेशन javadocs के अनुसार कोई एक रेगेक्स निर्दिष्ट कर सकता है जो टेम्पलेट पैरामीटर मिलान माना जाता है।

    इसलिए, निम्नलिखित कोड काम करता है:

    @Path("static") 
    public class StaticContentHandler { 
        ... 
        @GET 
        @Path("{path:.*}") 
        public FileRepresentation Get(@PathParam("path") String path) { 
        ...; 
        } 
    } 
    

    GET http://localhost:8182/static/yaba/daba/doo.pngpath बराबर करने के लिए "yaba/डाबा/doo.png" के साथ Get विधि पहुंचता है - बस क्या मैं के लिए देख रहा था।

    उम्मीद है कि यह किसी की भी मदद करेगा।

    बीटीडब्ल्यू, FileRepresentation रीस्टलेट से संबंधित है, इसलिए वास्तव में शुद्ध जेएक्स-आरएस कार्यान्वयन यहां कुछ और लौटाएगा।

    0

    आप इसी संसाधनों को लागू करने से शुद्ध JAX-रुपये के साथ यह कर सकते हैं: मूल रूप से आप सिर्फ भेजने के लिए एक बाइट सरणी और JAX-आरएस पहले से ही किसी भी मीडिया प्रकार के लिए बाइट सरणी प्रदाता भी शामिल है की जरूरत है।

    समस्या यह है कि आपका कार्यान्वयन शायद वेब सर्वर के मानक कार्यान्वयन के बाद कम कुशल होगा। आम तौर पर सर्वोत्तम सामग्री को वेब सर्वर जैसे अपाचे HTTPD या IIS या यहां तक ​​कि टॉमकैट पर रखना है।

    +0

    मेरे पास एक सीमा है, न तो अपाचे और न ही आईआईएस उपलब्ध हो सकता है। – mark

    +0

    मेरी समस्या डेटा नहीं भेज रही है, लेकिन जेएक्स-आरएस विनिर्देश का उपयोग कर स्थिर संसाधनों से मेल खाती है। – mark

    +0

    क्या आप विस्तारित कर सकते हैं कि संकलन समय में वास्तव में क्या जाना जाता है, जिसे बाद में कॉन्फ़िगर किया जा सकता है और गतिशील क्या है। स्टेटिक सामग्री आमतौर पर कुछ स्थिर और गतिशील नहीं है ... – Tarlog

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