2011-01-31 21 views
5

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

यदि मैं एक वेब अनुप्रयोगण फेंक देता हूं, तो इसमें प्रतिक्रिया वस्तु को क्रमबद्ध करने के लिए कोई विशेष प्रसंस्करण नहीं होती है (जो समझ में आता है; मुझे लगता है कि यह एक अन्य इंटरसेप्टर द्वारा किया जाता है)।

मुझे इंटरसेप्टर श्रृंखला को रोकने के बारे में कैसे जाना चाहिए, लेकिन अभी भी जेएक्सबी प्रतिक्रिया इकाई को क्रमबद्ध कर सकता है?

उत्तर

3

ठीक है, कम से कम CXF JAX-आरएस इंटरसेप्टर प्रवाह में, यदि आप सेट करें:

message.getExchange().put(Response.class, response); 

... तो वास्तविक सेवा लागू नहीं होता है, जबकि अन्य चरणों लागू मिलता है। CXF कोड करने के लिए खोदा नहीं किया है देखने के लिए जहां में

कि तर्क किक तो मैं इस तरह एक प्रतिक्रिया बनाया:।

Response response = Response 
    .status(Response.Status.FORBIDDEN) 
    .entity(new ErrorEntity("This is a JAXB object with an error string")) 
    .build(); 

मैं भी कुछ कस्टम एक CXF JAX-आरएस फिल्टर में चल प्रमाणीकरण और जब मैं प्रमाणीकरण ठीक है, तो मैं केवल पैरामीटर जांचना चाहता हूं, इसलिए मैंने PRE_INVOKE चरण के दौरान चलाने के लिए अपना पैरामीटर इंटरसेप्टर क्लास सेट किया।

+0

लेकिन अगर हम SOAP प्रोटोकॉल के साथ काम करते हैं तो यह तरीका काम नहीं करता है। क्या कोई एसओएपी मामले के लिए अपडेट प्रदान कर सकता है? –

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