Używam punktu końcowego SOAP utworzonego na wiosnęFramework używający JAXB, ale chcę, aby moje anwersy (oczekiwana odpowiedź) powróciły bez prefiksu, gdy I Send Request One, ale to jest zwracane, jak pokazano na Current Response :.
Jak mogę zrobić, aby zwrócić wiadomość SOAP bez przestrzeni nazw?
Poproś o jeden
<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>
Aktualna odpowiedź:
<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>
Żądaj jednej i bieżącej odpowiedzi, sążądanie / odpowiedź usługi internetowej osadzonej w innej usłudze internetowej (którą zaimplementowałem), powodem tej implementacji jest to, że zażądała ostatecznej odpowiedzi (bez znaczników przestrzeni nazw):
Oczekiwana odpowiedź
<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>
Odpowiedzi:
0 dla odpowiedzi № 1Mogłem to zrobić w następujący sposób:
- Dołącz dwa następujące słoiki JAXB : jaxb-core.jar i jaxb-impl.jar
- W pliku package-info.java ustaw następujące ustawienia:
Przypuśćmy, że twoja przestrzeń nazw to „twoja przestrzeń nazw"
@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;
Wydaje się, że obecna implementacja Javaignoruj poprzednie ustawienia, ale słoiki jaxb nie. Nie popchnąłem dalej mojego dochodzenia. Na koniec, potrzebujesz dwóch słoików, aby się skompilować.