मैं वसंत-डब्ल्यूएस के लिए नया हूं, और धीरे-धीरे मेरे सिर को इसके चारों ओर लपेट रहा हूं। अभी, मैं एक मौजूदा डब्ल्यूएस के साथ संवाद करने के लिए एक साधारण ग्राहक लिख रहा हूं। मैं WebServiceTemplate और marshalSendAndReceive विधि का उपयोग कर रहा हूं। सब कुछ ठीक काम करता है।एक FaultMessageResolver में एक SOAP गलती unmarshal कैसे?
हालांकि, जब एक एसओएपी गलती होती है, तो डब्लूएसटी एक साबुनफॉल्ट क्लाइंट अपवाद फेंकता है। मैंने देखा कि एसओएपी गलती के भीतर क्या है, यह जांचने के लिए मैं अपना खुद का FaultMessageResolver बना सकता हूं।
JAXB unmarshalling exception; nested exception is javax.xml.bind.UnmarshalException: unexpected element (uri:"http://schemas.xmlsoap.org/soap/envelope/", local:"Fault"). Expected elements are ....
जाहिर है, मेरी unmarshaller ठीक से विन्यस्त नहीं है: हालांकि, जब मैं अपने FaultMessageResolver में WebServiceMessage unmarshal करने की कोशिश, मैं निम्नलिखित त्रुटि संदेश मिलता है। क्या मुझे xjc का उपयोग कर जेएक्सबी गलती मॉडल उत्पन्न करना है, फिर त्रुटि को अनमर्शल करने में सक्षम होना चाहिए? मैं कुछ हद तक आश्चर्यचकित हूं कि यह पहले से मौजूद नहीं है।
क्या मेरे साबुन के भीतर से मेरी कस्टम त्रुटि जानकारी अतिरिक्त करने का कोई बेहतर तरीका है: गलती प्रतिक्रिया? मेरी त्रुटि निम्न की तरह कुछ दिखती है और मैं सेवा एरर आइटम निकालने/एक्सेस करने का प्रयास कर रहा हूं।
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Blaze Data Error</faultstring>
<detail>
<ns14:serviceErrors xmlns="http://www.nb.com/ClientServices/LendingSimulation/CalculateProfitabilityRequest" xmlns:ns13="http://www.nb.com/fw/errorMgmt" xmlns:ns14="http://www.nb.com/ClientServices/LendingSimulation/V1" >
<ns13:faultstring>ServiceExecutionError</ns13:faultstring>
<ns13:serviceError>
<ns13:errorCode>C10F1013</ns13:errorCode>
<ns13:errorType>B</ns13:errorType>
<ns13:errorMessage>Unable to retreive additional data</ns13:errorMessage>
<ns13:fieldName>Message error received from PHClient : [An unexpected error code was received : system=PH context=[empty]]</ns13:fieldName>
<ns13:systemId>Calculator</ns13:systemId>
<ns13:time>2012-06-19 14:45:10.151-0400</ns13:time>
</ns13:serviceError>
</ns14:serviceErrors>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
धन्यवाद!
एरिक
धन्यवाद। यह बहुत कुछ है जो मैं कर रहा था। लेकिन यह एक समय में केवल एक गलती जानकारी प्राप्त करता है, जिसे मैंने सोचा था कि बहुत अजीब था। मैं कुछ सिस्टम की उम्मीद करता था कि मैं सभी दोषों को एक सूची या दोषों की सरणी में अनारक्षित कर दूं। –