/ स्प्रिंग-डब्लूएस और जैक्सब - जावा, वेब-सर्विसेज, साबुन, जक्सब, स्प्रिंग-डब्ल्यूएस का उपयोग करके वेब सेवा प्रतिक्रिया में नाम स्थान टैग को हटा दें।

स्प्रिंग-डब्लूएस और जैक्सब - जावा, वेब-सर्विसेज, साबुन, जक्सब, स्प्रिंग-डब्ल्यूएस का उपयोग करके वेब सेवा प्रतिक्रिया में नाम स्थान टैग निकालें

मैं स्प्रिंग पर निर्मित एक समापन बिंदु SOAP का उपयोग कर रहा हूंJAXB का उपयोग करते हुए फ्रेमवर्क, लेकिन मैं चाहता हूं कि मेरे एवियर्स (एक्सपेक्टेड रिस्पांस) जब मैं रिक्वेस्ट वन सेंड करता हूं तो बिना उपसर्ग के वापस लौटता हूं, लेकिन इस तरह लौटा दिया जाता है जैसे करंट रिस्पांस पर दिखाया गया है:।

मैं बिना नामस्थान के एक संदेश SOAP कैसे लौटा सकता हूं?

अनुरोध एक

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"     xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
<soapenv:Header/>
<soapenv:Body>
<urn:ZProveerDatosPagoProveed2>
<Bukrs>RG10</Bukrs>
<Langu>S</Langu>
<Lifnr>00000000</Lifnr>
</urn:ZProveerDatosPagoProveed2>
</soapenv:Body>
</soapenv:Envelope>

वर्तमान प्रतिक्रिया:

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header/>
<soap-env:Body>
<n0:ZProveerDatosPagoProveed2Response xmlns:n0="urn:sap-com:document:sap:soap:functions:mc-style">
<Adrnr>0000</Adrnr>
<Bankk>0000</Bankk>
<Bankn>0000</Bankn>
<Bkont>0000</Bkont>
<Iban>ES0000</Iban>
<KoinhFi>ROBLES AVN</KoinhFi>
<Land1>TH</Land1>
<Landx>XXXXX</Landx>
<Name1>ROBLES AVN</Name1>
<Pstlz>0000</Pstlz>
<Stcd1>A0000</Stcd1>
<Stras>ROBLES AVN</Stras>
<Swift>XXXXX</Swift>
<Text1_052>ROBLES AVN</Text1_052>
<Zterm>Z000</Zterm>
</n0:ZProveerDatosPagoProveed2Response>
</soap-env:Body>
</soap-env:Envelope>

अनुरोध एक और वर्तमान प्रतिक्रिया, हैंकिसी अन्य वेब सेवा में एम्बेडेड वेब सेवा का अनुरोध / प्रतिक्रिया (जो मैंने लागू की थी), इस कार्यान्वयन का कारण यह है कि उसने अनुरोध किया है कि अंतिम उत्तर यह है (बिना नाम के टैग)

अपेक्षित प्रतिक्रिया

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header/>
<soap-env:Body>
<ZProveerDatosPagoProveed2Response xmlns="urn:sap-com:document:sap:soap:functions:mc-style">
<Adrnr>0000</Adrnr>
<Bankk>0000</Bankk>
<Bankn>0000</Bankn>
<Bkont>0000</Bkont>
<Iban>ES0000</Iban>
<KoinhFi>ROBLES AVN</KoinhFi>
<Land1>TH</Land1>
<Landx>XXXXX</Landx>
<Name1>ROBLES AVN</Name1>
<Pstlz>0000</Pstlz>
<Stcd1>A0000</Stcd1>
<Stras>ROBLES AVN</Stras>
<Swift>XXXXX</Swift>
<Text1_052>ROBLES AVN</Text1_052>
<Zterm>Z000</Zterm>
</ZProveerDatosPagoProveed2Response>
</soap-env:Body>
</soap-env:Envelope>

उत्तर:

जवाब के लिए 0 № 1

जिस तरह से मैं यह करने में सक्षम था वह निम्नलिखित है:

  1. निम्नलिखित दो जार शामिल करें JAXB : jaxb-core.jar और jaxb-impl.jar
  2. पैकेज-info.java फ़ाइल में, निम्न सेटिंग्स सेट करें:

अपने नाम स्थान को चुनना "yournamespace"

@javax.xml.bind.annotation.XmlSchema(namespace = yournamespace,
xmlns = {@javax.xml.bind.annotation.XmlNs(prefix = "",
namespaceURI = yournamespace)},
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
attributeFormDefault = javax.xml.bind.annotation.XmlNsForm.UNSET)
package com.ctpayment.admin;

ऐसा लगता है कि जावा का वर्तमान कार्यान्वयनपिछली सेटिंग्स को अनदेखा करें लेकिन jaxb jars नहीं। मैंने अपनी जाँच को आगे नहीं बढ़ाया। अंतिम लेकिन कम से कम, आपको संकलन करने के लिए दो जार की आवश्यकता है।