प्रदाता JAX-RS रनटाइम को बढ़ाने और अनुकूलित करने का एक सरल तरीका है। आप उन्हें प्लगइन्स के रूप में सोच सकते हैं जो (संभावित रूप से) रनटाइम के व्यवहार को बदलते हैं, ताकि (प्रोग्राम परिभाषित) लक्ष्यों का एक सेट पूरा हो सके।
प्रदाता संसाधनों की कक्षाओं के समान नहीं हैं , वे मौजूद हैं, वैचारिक रूप से, संसाधनों के स्तर के बीच और JAX-RS कार्यान्वयन के स्तर पर। यदि यह मदद करता है, तो आप उन्हें डिवाइस ड्राइवरों (उपयोगकर्ता और कर्नेल स्थान के बीच मौजूदा) के समान प्रकाश में सोच सकते हैं। यह एक व्यापक सामान्यीकरण है।
वर्तमान JAX-RS विनिर्देशन द्वारा परिभाषित प्रदाताओं के तीन वर्ग हैं। उनके बीच समानता यह है कि सभी प्रदाताओं को @Provider एनोटेशन द्वारा पहचाना जाना चाहिए और निर्माता घोषणा के लिए कुछ नियमों का पालन करना चाहिए। इसके अलावा, विभिन्न प्रदाता प्रकारों में अतिरिक्त एनोटेशन हो सकते हैं, और विभिन्न इंटरफेस लागू करेंगे।
इकाई प्रदाता
ये प्रदाता अपने जावा ऑब्जेक्ट समकक्षों के लिए डेटा अभ्यावेदन (जैसे XML, JSON, CSV) की मैपिंग को नियंत्रित करते हैं।
प्रसंग प्रदाता
ये प्रदाता उस संदर्भ को नियंत्रित करते हैं जो संसाधन @ कॉन्टेक्स्ट एनोटेशन के माध्यम से एक्सेस कर सकते हैं।
अपवाद प्रदाता
ये प्रदाता जावा अपवादों की मैपिंग को JAX-RS रिस्पॉन्स उदाहरण से नियंत्रित करते हैं।
आपका रनटाइम कई पूर्वनिर्धारित प्रदाताओं के साथ आएगा जो कार्यक्षमता के आधार स्तर को लागू करने के लिए ज़िम्मेदार होंगे (जैसे XML से मैपिंग के लिए और सबसे सामान्य अपवादों आदि का अनुवाद करना)। आप आवश्यकतानुसार अपने स्वयं के प्रदाता भी बना सकते हैं।
JAX-आरएस विनिर्देश इन विभिन्न प्रकार के प्रदाता हैं और वे क्या (अध्याय 4 देखें) है पर पढ़ने के लिए एक अच्छा संदर्भ है।