WSDL et serveur SOAP [Résolu]

Signaler
Messages postés
14
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
23 juin 2009
-
Messages postés
14
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
23 juin 2009
-
Bonjour



Je n'ai jamais travaillé avec soap avant, Je dois pourvoir échanger des infos en tan que  clients avec un serveur soap. 
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

 





Je dois exécuter des fonctions présentes sur le serveur soap distant en lui passant des paramètres  et en réponse je dois récupérer d'autres infos.



J’ai utilisé  cfinvoke, j’ai passé une fonction GetWebservicesVersion qui ne demande pas de paramètre le résultat et un succès.




 





Mais en passant des paramètres, le résultat et une erreur 



Voici le code :




   <cfinvoke webservice="#URL# "    method="GetChainList" returnvariable="res" >







    <cfinvokeargument name="GetVisibleChainsOnly" value="true">








    <cfinvokeargument name="AffiliateNumber" value="#HAN#">








   
</cfinvoke>




 






Voici le message d’erreur :







Web service operation GetChainList with parameters {AFFILIATENUMBER={0000},GETVISIBLECHAINSONLY={true}} cannot be found.








 






L’XML Request au WSDL est :



<?xml version="1.0" encoding="utf-8"?>




<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">








  <soap12:Body>








    <GetChainList xmlns="http://publicwebservices.hotel.de/V2_7">








      <objRequest>








        int








   
    <GetVisibleChainsOnly>boolean</GetVisibleChainsOnly>








      </objRequest>








    </GetChainList>








  </soap12:Body>







</soap12:Envelope>








 






Si  je dois passer les  AffiliateNumber et GetVisibleChainsOnly ou  un seul paramètre objRequest sous une autre forme ?? Laquelle ??

5 réponses

Messages postés
14
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
23 juin 2009

Merci pour tout,
J'ai résolue mon problème avec  cfhttp, s’il s’agit de paramètre complexe il faut passer l’XML  entière dans cfhttpparam
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

Bonjour,

peut-être une piste ici pour identifier ton problème : http://livedocs.adobe.com/coldfusion/7/htmldocs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=ColdFusion_Documentation&file=00001556.htm

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Mon Blog
Messages postés
14
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
23 juin 2009

Merci  Nickadele  



Mais peut être j’ai bien comprit car comme d’habitude




ret = ws.GetWebservicesVersion() qui ne demande pas de paramètre le résultat et un succès.



Et  GetChainList qui demande des  paramètres  le résultat et une erreur :



<cfscript>




               
ws = CreateObject("webservice", "
#URL#
");<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>








                doc = XmlNew();








                doc.objRequest = XmlElemNew(doc, "", "objRequest");








                doc.objRequest.GetVisibleChainsOnly = XmlElemNew(doc, "", "GetVisibleChainsOnly");








                doc.objRequest.GetVisibleChainsOnly.XmlText = true;








                doc.objRequest.AffiliateNumber = XmlElemNew(doc, "", "AffiliateNumber");








                doc.objRequest.AffiliateNumber .XmlText =
="#HAN#">
;








                addSOAPRequestHeader(ws, "", "", doc);








                ret = ws.GetChainList(XMLParse(doc));







</cfscript>








 







<cfset soapreq = GetSOAPRequest(ws)>







SOAP Request







<cfdump var="#soapreq#">








 







<cfset soapresp = GetSOAPResponse(ws)>







SOAP Response







<cfdump var="#soapresp#">







 





Voici le message d’erreur :




 






Cannot perform web service invocation GetChainList. 







The fault returned when invoking the web service operation is:







'' java.lang.IllegalArgumentException: argument type mismatch
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

Re,

peux-tu mettre un exemple pour information, ça peut toujours servir pour d'autres ?

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Mon Blog
Messages postés
14
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
23 juin 2009

<cfsavecontent variable="soapRequest">
      ICI L'XML
</cfsavecontent >
<cfhttp url="#URL# " method="POST" >
    <cfhttpparam type="xml" value="#soapRequest#">
</cfhttp>
et ca marche