2011-12-23 3 views
0

J'ai un problème qui me rend fou. Je veux consommer un service web, j'ai donc créé un client en utilisant Eclipse à partir de son WSDL, mais ça ne marche pas, mais quand j'utilise un autre outil comme XMLSpy cela fonctionne.Consommer ws de Java

Le message de savon sended de mon code Java (ne fonctionne pas) est:

<SOAP-ENV:Envelope 
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <SOAP-ENV:Body> 
     <JRPM056.Execute> 
      <Personas> 
        <ns1:pais xmlns:ns1="Personas">845</ns1:pais> 
        <ns2:tpdoc xmlns:ns2="Personas">1</ns2:tpdoc> 
        <ns3:ndoc xmlns:ns3="Personas">39858460</ns3:ndoc> 
        <ns4:apell1 xmlns:ns4="Personas">Recoba</ns4:apell1> 
        <ns5:apell2 xmlns:ns5="Personas">Viana</ns5:apell2> 
        <ns6:nombre1 xmlns:ns6="Personas">Rodrigo</ns6:nombre1> 
        <ns7:nombre2 xmlns:ns7="Personas">Romualdo</ns7:nombre2> 
        <ns8:fecnac xmlns:ns8="Personas">2011-12-01</ns8:fecnac> 
        <ns9:fecvto xmlns:ns9="Personas">2011-12-31</ns9:fecvto> 
        <ns10:sexo xmlns:ns10="Personas">M</ns10:sexo> 
        <ns11:estciv xmlns:ns11="Personas">2</ns11:estciv> 
        <ns12:domicilio xmlns:ns12="Personas"> 
         <ns13:domicilios.domiciliosItem xmlns:ns13="domicilios"> 
          <ns13:tdomi>4</ns13:tdomi> 
          <ns13:dpto>10</ns13:dpto> 
          <ns13:local>10</ns13:local> 
          <ns13:calle>Convenc</ns13:calle> 
          <ns13:puerta>1465</ns13:puerta> 
          <ns13:aparta>301</ns13:aparta> 
         </ns13:domicilios.domiciliosItem> 
         <ns14:domicilios.domiciliosItem xmlns:ns14="domicilios"> 
           <ns14:tdomi>3</ns14:tdomi> 
           <ns14:dpto>10</ns14:dpto> 
           <ns14:local>10</ns14:local> 
           <ns14:calle>Araucho</ns14:calle> 
           <ns14:puerta>1359</ns14:puerta> 
           <ns14:aparta>1</ns14:aparta> 
         </ns14:domicilios.domiciliosItem> 
        </ns12:domicilio> 
        <ns15:telefono xmlns:ns15="Personas"> 
          <ns16:Sdttelefonos.SdttelefonosItem xmlns:ns16="sdttelefonos"> 
           <ns16:tdomici>2</ns16:tdomici> 
           <ns16:telefono>27073963</ns16:telefono> 
           <ns16:sitdomi></ns16:sitdomi> 
          </ns16:Sdttelefonos.SdttelefonosItem> 
          <ns17:Sdttelefonos.SdttelefonosItem xmlns:ns17="sdttelefonos"> 
           <ns17:tdomici>1</ns17:tdomici> 
           <ns17:telefono>099514254</ns17:telefono> 
           <ns17:sitdomi></ns17:sitdomi> 
          </ns17:Sdttelefonos.SdttelefonosItem> 
          <ns18:Sdttelefonos.SdttelefonosItem xmlns:ns18="sdttelefonos"> 
           <ns18:tdomici>0</ns18:tdomici> 
           <ns18:telefono>099514254</ns18:telefono> 
           <ns18:sitdomi></ns18:sitdomi> 
          </ns18:Sdttelefonos.SdttelefonosItem> 
         </ns15:telefono> 
       <ns19:Ocucod xmlns:ns19="Personas">1</ns19:Ocucod> 
       <ns20:Actcod xmlns:ns20="Personas">1</ns20:Actcod> 
       <ns21:empresa xmlns:ns21="Personas">MI</ns21:empresa> 
       <ns22:fecing xmlns:ns22="Personas">2011-12-01</ns22:fecing> 
      </Personas> 
      </JRPM056.Execute> 
     </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

Message d'erreur:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<SOAP-ENV:Body> 
<WS.ExecuteResponse xmlns="http://tempuri.org/action/"> 
    <SOAP-ENV:Fault> 
     <faultcode>SOAP-ENV:Client</faultcode> 
     <faultstring>Name of parameter 2 different than expected.</faultstring> 
     <detail>2</detail> 
    </SOAP-ENV:Fault> 
</WS.ExecuteResponse> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

Le message de savon sended d'espion XML (travail) est:

<SOAP-ENV:Envelope 
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <SOAP-ENV:Body> 
     <JRPM056.Execute> 
      <Personas> 
        <ns1:pais xmlns:ns1="Personas">845</ns1:pais> 
        <ns2:tpdoc xmlns:ns2="Personas">1</ns2:tpdoc> 
        <ns3:ndoc xmlns:ns3="Personas">39858460</ns3:ndoc> 
        <ns4:apell1 xmlns:ns4="Personas">Recoba</ns4:apell1> 
        <ns5:apell2 xmlns:ns5="Personas">Viana</ns5:apell2> 
        <ns6:nombre1 xmlns:ns6="Personas">Rodrigo</ns6:nombre1> 
        <ns7:nombre2 xmlns:ns7="Personas">Romualdo</ns7:nombre2> 
        <ns8:fecnac xmlns:ns8="Personas">2011-12-01</ns8:fecnac> 
        <ns9:fecvto xmlns:ns9="Personas">2011-12-31</ns9:fecvto> 
        <ns10:sexo xmlns:ns10="Personas">M</ns10:sexo> 
        <ns11:estciv xmlns:ns11="Personas">2</ns11:estciv> 
        <ns12:domicilio xmlns:ns12="Personas"> 
         <ns13:domicilios.domiciliosItem xmlns:ns13="domicilios"> 
          <ns13:tdomi>4</ns13:tdomi> 
          <ns13:dpto>10</ns13:dpto> 
          <ns13:local>10</ns13:local> 
          <ns13:calle>Convenc</ns13:calle> 
          <ns13:puerta>1465</ns13:puerta> 
          <ns13:aparta>301</ns13:aparta> 
         </ns13:domicilios.domiciliosItem> 
         <ns14:domicilios.domiciliosItem xmlns:ns14="domicilios"> 
           <ns14:tdomi>3</ns14:tdomi> 
           <ns14:dpto>10</ns14:dpto> 
           <ns14:local>10</ns14:local> 
           <ns14:calle>Araucho</ns14:calle> 
           <ns14:puerta>1359</ns14:puerta> 
           <ns14:aparta>1</ns14:aparta> 
         </ns14:domicilios.domiciliosItem> 
        </ns12:domicilio> 
        <ns15:telefono xmlns:ns15="Personas"> 
          <ns16:Sdttelefonos.SdttelefonosItem xmlns:ns16="sdttelefonos"> 
           <ns16:tdomici>2</ns16:tdomici> 
           <ns16:telefono>27073963</ns16:telefono> 
           <ns16:sitdomi></ns16:sitdomi> 
          </ns16:Sdttelefonos.SdttelefonosItem> 
          <ns17:Sdttelefonos.SdttelefonosItem xmlns:ns17="sdttelefonos"> 
           <ns17:tdomici>1</ns17:tdomici> 
           <ns17:telefono>099514254</ns17:telefono> 
           <ns17:sitdomi></ns17:sitdomi> 
          </ns17:Sdttelefonos.SdttelefonosItem> 
          <ns18:Sdttelefonos.SdttelefonosItem xmlns:ns18="sdttelefonos"> 
           <ns18:tdomici>0</ns18:tdomici> 
           <ns18:telefono>099514254</ns18:telefono> 
           <ns18:sitdomi></ns18:sitdomi> 
          </ns18:Sdttelefonos.SdttelefonosItem> 
         </ns15:telefono> 
       <ns19:Ocucod xmlns:ns19="Personas">1</ns19:Ocucod> 
       <ns20:Actcod xmlns:ns20="Personas">1</ns20:Actcod> 
       <ns21:empresa xmlns:ns21="Personas">MI</ns21:empresa> 
       <ns22:fecing xmlns:ns22="Personas">2011-12-01</ns22:fecing> 
      </Personas> 
      </JRPM056.Execute> 
     </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

J'essaie de comprendre la différence, d'avoir une idée de pourquoi ne fonctionne pas à partir de mon généré par eclipse clien t. Merci!

+0

Incluez le code où vous consommez réellement le WS. – Alfabravo

+0

Code @Alfabravo ajouté. – Keetah

Répondre

0

votre schéma n'a aucun sens. namespace "tns3" n'est défini nulle part, et vos différents noms de types ne correspondent pas du tout. est-ce le schéma actuel? Si c'est le cas, je vais essayer de le corriger en premier.

+0

J'ai ajouté les deux messages de savon, celui envoyé par xmlSpy, qui fonctionne parfaitement, et celui généré à partir de mon code java (le client est généré avec eclipse). Merci. – Keetah

+0

Oui, les espaces de noms devraient être utilisés à bon escient. Mais en ces temps horribles, certains logiciels malveillants permet une telle folie hehehe. De toute façon, si le WS permet le deuxième message ... – Alfabravo

+0

@Alfabravo - je commente en fait le schéma inclus dans la version originale de la question, qui était probablement invalide. – jtahlborn

Questions connexes