Генерация Soap из WSDL дает другой результат - PullRequest
0 голосов
/ 17 февраля 2020

Я предоставляю услугу, используя WSDL. Когда я импортирую его в SOAPUI, запрос выглядит как

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:gweb="http://a.b.c.d.e.f.fr/">
   <soapenv:Header/>
   <soapenv:Body>
      <gweb:envoyer>
         <demande>
            <a>?</a>
            <b>?</b>
            <c>?</c>
            <!--Optional:-->
            <d>?</d>
            <!--Optional:-->
            <e>?</e>
         </demande>
      </gweb:envoyer>
   </soapenv:Body>
</soapenv:Envelope>

Но когда он импортируется клиентом, запрос givin выглядит как

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:types="http://a.b.c.d.e.f.fr/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <SOAP-ENV:Body>
      <types:envoyer>
         <s01:demande xmlns:s01="http://a1.a.b.c.d.e.f.fr/" xmlns:s02="http://a2.a.b.c.d.e.f.fr/">
            <a>?</a>
            <b>?</b>
            <c>?</c>
            <d>?</d>
            <e>?</e>
         </s01:demande>
      </types:envoyer>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Я не знаю, почему добавляется пространство имен к методу «demande». Это проблема, потому что это не работает. Если я удаляю пространство имен 'demande', все работает

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <soap:Fault>
         <faultcode>soap:Client</faultcode>
         <faultstring>Unmarshalling Error: unexpected element (uri:"http://a1.a.b.c.d.e.f.fr/", local:"demande"). Expected elements are &lt;{}demande></faultstring>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>

Я думаю, что клиент использует Axis2, и проблема в этом, но я не знаю, как это исправить.

...