WSDL et serveur SOAP

Résolu
cs_bilelbilel Messages postés 14 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 23 juin 2009 - 17 nov. 2008 à 14:45
cs_bilelbilel Messages postés 14 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 23 juin 2009 - 1 déc. 2008 à 09:15
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

cs_bilelbilel Messages postés 14 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 23 juin 2009
21 nov. 2008 à 09:07
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
3
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
18 nov. 2008 à 12:17
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
0
cs_bilelbilel Messages postés 14 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 23 juin 2009
18 nov. 2008 à 17:55
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
0
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
21 nov. 2008 à 17:10
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bilelbilel Messages postés 14 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 23 juin 2009
1 déc. 2008 à 09:15
<cfsavecontent variable="soapRequest">
      ICI L'XML
</cfsavecontent >
<cfhttp url="#URL# " method="POST" >
    <cfhttpparam type="xml" value="#soapRequest#">
</cfhttp>
et ca marche
0
Rejoignez-nous