WSDL et serveur SOAP [Résolu]

cs_bilelbilel 14 Messages postés lundi 21 novembre 2005Date d'inscription 23 juin 2009 Dernière intervention - 17 nov. 2008 à 14:45 - Dernière réponse : cs_bilelbilel 14 Messages postés lundi 21 novembre 2005Date d'inscription 23 juin 2009 Dernière intervention
- 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 ??
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_bilelbilel 14 Messages postés lundi 21 novembre 2005Date d'inscription 23 juin 2009 Dernière intervention - 21 nov. 2008 à 09:07
3
Merci
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

Merci cs_bilelbilel 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_bilelbilel
nickadele 1253 Messages postés mercredi 7 août 2002Date d'inscription 10 avril 2013 Dernière intervention - 18 nov. 2008 à 12:17
0
Merci
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
Commenter la réponse de nickadele
cs_bilelbilel 14 Messages postés lundi 21 novembre 2005Date d'inscription 23 juin 2009 Dernière intervention - 18 nov. 2008 à 17:55
0
Merci
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
Commenter la réponse de cs_bilelbilel
nickadele 1253 Messages postés mercredi 7 août 2002Date d'inscription 10 avril 2013 Dernière intervention - 21 nov. 2008 à 17:10
0
Merci
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
Commenter la réponse de nickadele
cs_bilelbilel 14 Messages postés lundi 21 novembre 2005Date d'inscription 23 juin 2009 Dernière intervention - 1 déc. 2008 à 09:15
0
Merci
<cfsavecontent variable="soapRequest">
      ICI L'XML
</cfsavecontent >
<cfhttp url="#URL# " method="POST" >
    <cfhttpparam type="xml" value="#soapRequest#">
</cfhttp>
et ca marche
Commenter la réponse de cs_bilelbilel

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.