2016-12-15 4 views
10

यह स्थिति है, एक मौजूदा ग्राहक है, मुझे क्लाइंट का उपभोग करने वाले सर्वर का निर्माण करने की आवश्यकता है। मेरे पास क्लाइंट का स्वामित्व नहीं है और इसे बदलने की स्थिति में नहीं है। ग्राहक साबुन संदेश हो सकता हैसी # - डब्ल्यूसीएफ को किसी भी साबुन संदेश उपसर्ग स्वीकार करें

enter image description here

मैं अपने सेवा परिक्रमा उपसर्गों के दोनों स्वीकार कैसे कर सकता हूँ इस प्रकार है। वर्तमान में यह केवल "c2b" उपसर्ग स्वीकार करता है और यह "ns1" उपसर्ग के साथ किसी भी अनुरोध को संसाधित नहीं करता है।

उत्तर

4

आप सेवा के लिए डीटीओ (कक्षा वस्तु) पास कर रहे हैं लेकिन आपकी डब्ल्यूसीएफ सेवा सटीक कक्षा को पहचानने में सक्षम नहीं है। तो डब्ल्यूसीएफ को किसी भी उपसर्ग को स्वीकार करने के लिए बस उचित ऑब्जेक्ट स्थान के साथ उस उपसर्ग को जोड़ें। आपको <soapenv:Envelope> पर एक और xmlns विशेषता जोड़ने की आवश्यकता है।

ईजी।

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:ns1="http://cps.huawei.com/cpsinterface/c2bpayment" xmlns:c2B="http://cps.huawei.com/cpsinterface/c2bpayment"> 
+0

सेवा की किस फ़ाइल में मैं उपरोक्त जोड़ता हूं? –

+0

कृपया साबुन संदेश बदलने के लिए इस लिंक का संदर्भ लें। [साबुन संदेश बदलें] (https://cmatskas.com/changing-soap-message-data-and-namespaces-with-c/) –

1

ईमानदारी से, आप यहां एक खाड़ी हो सकते हैं। आपके पास एक क्लाइंट है जो पूरी तरह से अमान्य SOAP संदेश प्रदान कर रहा है - यह एक नामस्थान उपसर्ग का उपयोग कर रहा है कि यह बिल्कुल घोषित नहीं हो रहा है।

मैं इसे आज़माने के लिए समय नहीं है, लेकिन मेरा पहला विचार हो सकता है XmlNamespaceDeclarationsAttribute उपयोग कर रहा था काम कर सकते हैं - आप अपने जड़ C2BPaymentConfirmationRequest वर्ग पर प्रदान कर सकता है, और "Ns1 भी" ओर इशारा करते हुए के साथ अपने निर्माता में यह पूर्व भरने "http://cps.huawei.com/cpsinterface/c2bpayment" पर। एक कोशिश के काबिल है। अगर यह काम करता है तो हमें बताएं।

2

Shubham Sharma's answer 100% सही है।

थोड़ा और स्पष्टीकरण जोड़ने के लिए, ये उपसर्ग आपके द्वारा घोषित नामस्थानों के केवल उपनाम हैं। उनका मतलब कुछ भी नहीं है। यदि आप उपसर्ग के रूप में ns1 का उपयोग करना चाहते हैं, तो आपको xmlns को प्रतिस्थापित करना होगा: c2b xmlns के साथ: ns1 शीर्ष पर।

आपके मामले में, ग्राहक को यह नहीं पता कि अनुरोध कैसे उत्पन्न किया जाए। हो सकता है कि उन्हें एसएसयूयूआई जैसे कि एसएसयूयूआई के आधार पर कुछ अनुरोध जनरेशन टूल का उपयोग करने के लिए सलाह दी जाए।

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