2017-09-27 3 views
0

Je suis confronté à un problème lors de l'appel d'un service Web. Le nom de mon élément pour ma réponse n'est pas le même que le nom du fichier WSDL. Cependant pour la demande, cela fonctionne parfaitement.Espace de noms incorrect pour ma réponse de service Web

Avez-vous une idée à ce sujet? Différents noms me semble bien.

C'est le WSDL:

<?xml version="1.0" encoding="UTF-8"?> 
<definitions name="test-existence-muna-service" 
    targetNamespace="http://www.fimasys.com/fsb" 
    xmlns="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    xmlns:tns="http://www.fimasys.com/fsb" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 

    <types> 
     <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.fimasys.com/fsb"> 
      <element name="TestExistenceMuna_Input_Message"> 
       <complexType> 
        <sequence> 
         <element minOccurs="1" name="muna" type="string"/> 
        </sequence> 
       </complexType> 
      </element> 
      <element name="TestExistenceMuna_Output_Message"> 
       <complexType> 
        <sequence> 
         <element minOccurs="1" name="existenceMuna" type="boolean"/> 
        </sequence> 
       </complexType> 
      </element> 
     </schema> 
    </types> 

    <message name="TestExistenceMuna_Input_Message"> 
     <part name="parameters" element="tns:TestExistenceMuna_Input_Message"></part> 
    </message> 
    <message name="TestExistenceMuna_Output_Message"> 
     <part name="parameters" element="tns:TestExistenceMuna_Output_Message"></part> 
    </message> 

    <portType name="testExistenceMunaPortType"> 
     <operation name="getExistenceMuna"> 
      <input message="tns:TestExistenceMuna_Input_Message" /> 
      <output message="tns:TestExistenceMuna_Output_Message" /> 
     </operation> 
    </portType> 

    <binding name="testExistenceMunaBinding" type="tns:testExistenceMunaPortType"> 
     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 
     <operation name="getExistenceMuna"> 
      <soap:operation soapAction="http://www.fimasys.com/fsb/getExistenceMuna" /> 
      <input> 
       <soap:body use="literal" /> 
      </input> 
      <output> 
       <soap:body use="literal" /> 
      </output> 
     </operation> 
    </binding> 

    <service name="test-existence-muna-service"> 
     <port binding="tns:testExistenceMunaBinding" name="testExistenceMunaPort"> 
      <soap:address location="http://0.0.0.0:8088/fsb/test-existence-muna-service/"/> 
     </port> 
    </service> 
</definitions> 

Ceci est la demande en SoapUI:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fsb="http://www.fimasys.com/fsb"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <fsb:TestExistenceMuna_Input_Message> 
     <muna>07282166.12</muna> 
     </fsb:TestExistenceMuna_Input_Message> 
    </soapenv:Body> 
</soapenv:Envelope> 

Ceci est la réponse à SoapUI:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
     <ns2:getExistenceMunaResponse xmlns:ns2="http://www.fimasys.com/fsb"> 
     <existenceMuna>true</existenceMuna> 
     </ns2:getExistenceMunaResponse> 
    </soap:Body> 
</soap:Envelope> 
+0

est-ce pas votre élément de réponse juste référencé 'getExixtenceMunaResponse' quelque part dans wsdl? Pouvez-vous montrer votre fichier wsdl? – bilak

+0

Merci pour votre réponse. J'ai édité le post original. –

+0

avez-vous également accès à la mise en œuvre? N'y at-il pas un wrapper ou quelque chose qui fait que l'élément soit renommé? – bilak

Répondre

0

Attend vous avez doute sur les préfixes dans la demande et la réponse à savoir, fsb vs ns2, non?

Peu importe le préfixe utilisé tant qu'il utilise le même espace de noms . Si vous examinez à la fois la demande et la réponse, les deux points sont espace de noms, c'est-à-dire http://www.fimasys.com/fsb.

Vous pouvez en savoir plus sur les espaces de noms here

+0

Ok merci pour ça. Mon vrai problème est le WSDL, ma réponse est définie à mais soapui me donne un à la place ... L'entrée est OK d'ailleurs, dans WSDL et soapui c'est