Envoyé par : ippous
Date : 23/03/2005 14:34
Bonjour.
J'ai un soucis avec SOAP.
J'ai écris un Service Web en PHP, et je l'appel via un appel SOAP dans une appli XUL.
L'appel se passe bien (les logs de mon SW m'indiquent que tout c'est correctement passé), par contre Firefox et Mozilla déclarent ne rien recevoir en réponse du;
var r= SOAP.invoke() (r ressort null).
J'ai donc deux questions:
PS: j'ai essayé avec HTTPRequest, XMLRequest, et là pas de pbs.
Par avance merci.
Envoyé par : Lapinator
Date : 24/03/2005 15:32
hummm, j'utilise aussi SOAP, mais je n'arrive qu'a le faire marcher dans le chrome.
Si sa peut aider, je peut te donner aussi du code qui marche ^^
Envoyé par : ippous
Date : 25/03/2005 08:25
Bonjour.
Pourquoi pas. Personellement, je ne suis pas certain qu'il faille signer le script car les messages d'erreurs ("SOAP fault", fonctionnent). En fait je n'arrive pas à avoir le contenu de la réponse du SW.
Il faut que j'adapte le code pour pourvoir le fournir, car il est destiné à lister des mots de passe...
Si vous voullez envoyer du code vous pouvez le faire à: ejaum@at@btb.fr.
Je continu à chercher.
Encore merci.
Envoyé par : Lapinator
Date : 12/04/2005 12:00
Oupppps j'ai mis du temps à répondre DSL :(
voici le code :
const transportURI = "http://xxx:80/serverSOAP.php"; const soapVersion = 0; // Version 1.1 function mailling_get_groupes() { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); } catch (e) { alert(e); return false; } if(window.session) var session=window.session; else var session=opener.session; var headers = new Array( ); var params = new Array( new SOAPParameter(session,"session") ); var call = new SOAPCall( ); call.transportURI = transportURI; call.actionURI = "urn:testprovider#printit"; call.encode(soapVersion, "getGroupesEmails", "urn:testprovider", 0, null, params.length, params); var currentRequest = call.asyncInvoke(mailling_get_groupes_responce); } function mailling_get_groupes_responce(resp,call,status) { // SOAP_response_test : fonction perso if(!SOAP_response_test(resp,call,status)) return; groupe=document.getElementById('mail-groupe'); //Suppression des anciens elements while(groupe.childNodes[1].childNodes[4]) groupe.childNodes[1].removeChild(groupe.childNodes[1].childNodes[4]); g=''; for(i=0; d = resp.body.firstChild.firstChild.childNodes[i]; i++){ gr = d.childNodes[0].firstChild.data; sousgroupe = d.childNodes[1].firstChild.data; email = d.childNodes[2].firstChild.data; if(gr!=g){ if(g!='') groupe.childNodes[1].appendChild(treeitem_base); treeitem_base = document.createElement("treeitem"); treeitem_base.setAttribute("container","true"); treeitem_base.setAttribute("open","true"); treerow = document.createElement("treerow"); treecell = document.createElement("treecell"); treecell.setAttribute("label",gr); treerow.appendChild(treecell); treeitem_base.appendChild(treerow); treechildren = document.createElement("treechildren"); treeitem_base.appendChild(treechildren); g = gr; } treeitem = document.createElement("treeitem"); treerow = document.createElement("treerow"); treecell = document.createElement("treecell"); treecell.setAttribute("label",sousgroupe); treecell.setAttribute("id",email); treecell.setAttribute('groupe',gr); treerow.appendChild(treecell); treeitem.appendChild(treerow); treechildren.appendChild(treeitem); } if(treeitem_base) groupe.childNodes[1].appendChild(treeitem_base); /* msg=open('','toto','width=1000,height=500'); // la fonction show_dom a déjà été posté dans un de mes post précédans. msg.document.writeln(show_dom(groupe)); msg.document.close(); */
}
Ok c un peut touffu, mais il y a plein d'id a prendre dedans, ici il y a un code pour une demande asyncrone. Pour une demande syncrone utilse la fonction suivante : "resp = call.invoke();".
Envoyé par : ippous
Date : 12/04/2005 13:47
Bonjour Cela ressemble beaucoup à ce que j'ai écris. Je vais néanmoins comparer et voir ce que cela donne.
Merci d'avoir répondu.
Envoyé par : ippous
Date : 13/04/2005 07:33
Bonjour. Mon problème viendrai donc du fait que je ne parvienne pas à obtenir les droits: UniversalBrowserRead.
(PS: pourtant j'ai signé l'ensemble de mon répertoire).
function FListerComptes(){
var method = "ListerComptes"; var transportURI = "http://ippous.dyndns.org/passxul/compte.php3"; const object = "urn:EjaumTest"; var soapVersion=0; try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); } catch (e) { alert(e); return false; } if (Identifier()){ MyUser = document.getElementById("MyUser").value; MyPassword = document.getElementById("MyPassword").value; clearTopicList(document.getElementById("ListeComptes")); var headers = new Array( ); var params = new Array(); params[0] = getParam(MyUser,"User","uri:EjaumTest"); params[1] = getParam(MyPassword,"Password","uri:EjaumTest"); var call = new SOAPCall( ); call.transportURI = transportURI; call.actionURI = object+"/"+method; call.encode(soapVersion,method,object,headers.length,headers,params.length,params); MyAlert (call.actionURI); var currentRequest = call.asyncInvoke( function (response, soapcall, error){ MyAlert(soapcall); MyAlert ("Erreur " + currentRequest.fault); MyAlert ("Message" + currentRequest.message); MyAlert ("Message" + currentRequest.enveloppe); MyAlert("Réponse" + response); var r = HandleSoapResponse(response, soapcall, error); TraiterListeComptes(r); } ); } }
Envoyé par : ippous
Date : 15/04/2005 11:15
Le problème de droits est résolu.
J'en ai un autre, maintenant qui ressemble à un problème d'encodage. En effet, j'ai le message d'erreur: XML Parsing Error: xml declaration not at start of external entity Location: http://ippous.dyndns.org/passxul/compte.php3 Line Number 2, Column 1:
alors que le fichier XML est apparement bien formé:
<?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd" xmlns:tns="urn:EjaumTest"> <SOAP-ENV:Body> <ns1:ListerComptesResponse xmlns:ns1="urn:EjaumTest"><return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:CompteDes[2]"> <item xsi:type="tns:CompteDes"><Compte xsi:type="xsd:string">Test1</Compte><Id xsi:type="xsd:int">1</Id></item> <item xsi:type="tns:CompteDes"><Compte xsi:type="xsd:string">Test2</Compte><Id xsi:type="xsd:int">2</Id></item> </return> </ns1:ListerComptesResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Quelqu'un aurait'il une idée
[le moderateur : est ce possible que tu essayes de suivre la syntaxe wiki, et que tu fasse une preview de tes messages, que je n'ai pas à retoucher tout tes messages afin qu'ils soient lisibles ? Je sais c'est pas forcement pratique pour le moment, mais quand même. merci \]
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.