के साथ सर्वर-साइड एक्सएमएल प्रमाणीकरण मैं अपाचे सीएक्सएफ webservice (एसएएपी पर जेएक्स-डब्ल्यूएस का उपयोग करके) पर काम कर रहा हूं। सेवा स्वयं बहुत सरल है: एक अनुरोध प्राप्त करें, डेटाबेस में अनुरोध डालें, और वापस डालें कि क्या सम्मिलन सफल हुआ था या नहीं। मैं अनुरोध पर कई बाधाओं को लागू करने के लिए एक्सएमएल सत्यापन पर भरोसा करना चाहता हूं।सीएक्सएफ वेबसाइट सेवा
तो, मेरा प्रश्न। मैं अपनी सेवा के ग्राहक को विस्तृत सत्यापन त्रुटियों को कैसे वापस कर सकता हूं? मैंने अपने एंडपॉइंट को कॉन्फ़िगर करके सर्वर-साइड पर सत्यापन चालू कर दिया है।
<jaxws:endpoint id="someEndpoint" implementor="#someImpl" address="/impl">
<jaxws:properties>
<!-- This entry should- ideally- enable JAXB validation
on the server-side of our web service. -->
<entry key="schema-validation-enabled" value="true" />
</jaxws:properties>
</jaxws:endpoint>
मैं सर्वर पर इंटरसेप्टर का उपयोग कर (जैसे BareInInterceptor), और किसी भी तरह पकड़ने SAXParseExceptions उन्हें लपेटो और उन्हें ग्राहक को साथ भेजा जाने का पता लगाया है। यह दृष्टिकोण थोड़ा जटिल लगता है, लेकिन अगर किसी XML को उनके XML अमान्य है तो मुझे किसी भी तरह से लाइन नंबर देने की आवश्यकता है। क्या मुझे अपवादों का पर्दाफाश करने के लिए इंटरसेप्टर के साथ जाना चाहिए?
मुझे इस तकनीक के ढेर के साथ बहुत अनुभवी नहीं है, और बस वेब सेवाओं में शामिल होना- किसी भी पॉइंटर्स जो आप मुझे दे सकते हैं वास्तव में सराहना की जाएगी।
ध्यान रखें कि यदि आपके अनुरोध में एक्सएमएल एसओएपी क्लाइंट एप्लिकेशन (जैसे कि आप अपनी सेवा से स्टब्स उत्पन्न करने से प्राप्त करेंगे) द्वारा उत्पन्न किया जा रहा है, तो आपकी लाइन संख्या 1 बहुत बार होने की संभावना है (कई ग्राहक आसानी से 1-बहुत-लंबी लाइन XML दस्तावेज़ उत्पन्न करेंगे)। –
@ इयान मैकलेयर: दूसरी तरफ, यह टेस्टर्स द्वारा आवेदन की जाने वाली वैध टिप्पणियां है, वे बेहतर प्रारूपण का उपयोग करते हैं और इससे उन्हें – Betlista