हमने अपाचे सीएक्सएफ का उपयोग करके कुछ आरईएसटी (जैक्स-आरएस) वेब सेवाओं का निर्माण किया है। वे एक JSON प्रतिक्रिया वापस करते हैं।सर्वलेट फ़िल्टर बनाम सीएक्सएफ इंटरसेप्टर?
अब मुझे कुछ अनुरोध पैरामीटर और प्रतिक्रिया सामग्री को संशोधित करने की आवश्यकता है। (मूल रूप से हमें सेवा द्वारा लौटाए गए कुछ डेटा को एन्कोड/एन्क्रिप्ट करना होगा; और बाद में सेवा कॉल में पैरामीटर के रूप में उपयोग किए जाने पर उसी डेटा को डीकोड/डिक्रिप्ट करना होगा।)
ऐसा लगता है कि मेरे पास कम से कम है यहाँ 4 विकल्प:
- एक सर्वलेट फिल्टर
- उपयोग एक CXF इंटरसेप्टर
- उपयोग का प्रयोग करें एक JAX-आरएस फ़िल्टर
- किसी विशेष पैटर्न का उपयोग न करें, और वास्तविक भीतर एनकोड/डीकोड प्रदर्शन सेवा तर्क
मैंने पहले सर्वलेट फ़िल्टर का उपयोग किया है, और वास्तव में अनुरोध पैरा और प्रतिक्रिया निकाय को संशोधित करने के तरीके को समझते हैं, इसलिए मैं इसके प्रति झुका रहा हूं। हालांकि, मैं सीएक्सएफ इंटरसेप्टर या जेएक्स-आरएस फ़िल्टर का उपयोग करने के लिए खुला हूं अगर सीएक्सएफ का उपयोग करते समय इसे हल करने के लिए यह 'सही' तरीका है। लेकिन प्रलेखन के आधार पर, मुझे यह करने के लिए वास्तव में समझ में नहीं आता है। उदाहरण के लिए, क्या मैं JSON प्रतिक्रिया को बदलने के लिए संदेश ऑब्जेक्ट की setContent विधि का उपयोग करता हूं? उस मामले में प्रारूप पैरामीटर क्या है, बस String.class?
यह अच्छा होगा अगर आप अपनी पसंद के पीछे कारण बता सकते हैं। – andthereitgoes
मेरे पास एक ही सवाल है, अगर सीएक्सएफ ने इंटरसेप्टर प्रदान किया है, तो अभी भी फ़िल्टर क्यों होना चाहिए? – Chailie
@ चाइली - सीएक्सएफ इंटरसेप्टर पर जेएक्स-आरएस फ़िल्टर के साथ जाने का कोई मजबूत कारण नहीं था, मुझे लगता है कि मैंने इसे चुना मुख्य कारण यह था कि यह जेएक्स-आरएस विशिष्ट था, लेकिन एक सीएक्सएफ इंटरसेप्टर भी काम करता। (हालांकि इसे अभी भी कस्टम कोडिंग की एक ही राशि की आवश्यकता होगी।) ध्यान दें कि जेएक्स-आरएस 2.0 अब बाहर है, इसलिए जेएक्स-आरएस फ़िल्टर और इंटरसेप्टर spec का हिस्सा बन गए हैं और निश्चित रूप से वर्तमान के साथ जाने का तरीका होगा प्रौद्योगिकी। –