2012-12-18 46 views
6

द्वारा बनाई गई प्रतिक्रिया के दौरान ट्रैवर नहीं किया गया है, मैं अपनी आराम से वेब सेवाओं को बनाने के लिए RestEasy का उपयोग कर रहा हूं। मैंने विशिष्ट अपवाद प्रतिक्रिया तैयार करने के लिए अपवाद मैपर लागू किए हैं।RestEasy पोस्ट प्रोसेस इंटरसेप्टर श्रृंखला एक्ससेप्शन मैपर

मैंने संदेशबॉडीवाइटरइंटरसेप्टर्स और कुछ पोस्टप्रोसेसरइंटरसेप्टर्स को भी कार्यान्वित किया है।

समस्या: कोई भी संसाधन ठीक काम करता है जब कोई संसाधन कोई अपवाद नहीं फेंकता है। मेरा कार्यान्वयन अपेक्षित के रूप में काम करता है। सभी पोस्ट प्रोसेसर इंटरसेप्टर और संदेश बॉडी लेखक इंटरसेप्टर को बुलाया जाता है।

लेकिन जब किसी भी संसाधन विधियों से अपवाद फेंक दिया जाता है, तो पंजीकृत अपवाद मैपर कहा जाता है और यह प्रतिक्रिया बना रहा है। लेकिन इस मामले में पोस्ट प्रोसेसर इंटरसेप्टर श्रृंखला नहीं है। उन्हें बुलाया नहीं जा रहा है।

इस मामले में मुझे क्या करना चाहिए। मेरे अपवाद मैपर में इंटरसेप्टर तर्क लिखें या क्या समाधान उपलब्ध है?

उत्तर

11

यदि कोई अपवाद फेंक दिया जाता है तो पोस्ट प्रोसेसर को कॉल नहीं किया जाता है। वे विभिन्न समानांतर संकल्प पथ पर हैं:

 
     /'Normal' JAX-RS response -> Post Processors -> Message Body Writers 
Processing 
      \ Exception -> Exception Mappers 

आप तर्क दोनों अपनी पोस्ट प्रोसेसर और अपवाद मानचित्रकारों में चलाने की जरूरत है है तो आप (अधिमानतः एक आम, उपयोगिता वर्ग के माध्यम से दोनों में शामिल करने की आवश्यकता होगी)।

+0

आपके उत्तर के लिए धन्यवाद। एक सामान्य उपयोगिता वर्ग – Bhaskar

+0

कोई समस्या का उपयोग कर तर्क लागू करेंगे। अगर यह आपकी मदद करता है तो मेरा जवाब स्वीकार करने के लिए स्वतंत्र महसूस करें। और बाकी परियोजना के साथ शुभकामनाएँ। – Perception