IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Utilisation de l'objet SOAPCall


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 77
    Par défaut Utilisation de l'objet SOAPCall
    Bonjour,
    j'ai cré un petit service web avec soap en php qui me renvoit un tableau. J'ai testé ce service avec un client en php qui parvient correctement à lire le résultat.
    Mais à vrai dire, c'est en javascript que je dois faire ce client ... et forcément ca commence a poser problème.
    Je vais plutot vous montrer le bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function detail($id_contact){
        var params = new Array();
        // créer un objet SOAPCall
        var appel = new SOAPCall();
        // localiser le service Web
        appel.transportURI="http://localhost/content/serviceDetail.php";
        // créer un tableau contenant des arguments de la fonction appelée
        params[0] = new SOAPParameter("id_contact","1");
        // créer un message SOAP
        appel.encode(0, "detail", "http://localhost/content/serviceDetail.php", 0, null, params.length, params);
        alert('ooo');
        // appeler la fonction
        var result=appel.invoke();
        // charger et retourner le résultat du fonctionnement de la fonction
        var r=result.getParameters(false,{});
        alert(r[0].value);
    }
    Il semble que le méthode encode ne fonctionne pas. J'ai fais des petits affichages ca et la, et c'est a ce niveau que ca plante ...
    Honnêtemen,t je n'ai aucune idée du pourquoi, et il faut avouer que les tutos sur le net concernant soapcall, c'est pas la panacée ...

  2. #2
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par WalidNat
    Il semble que le méthode encode ne fonctionne pas. J'ai fais des petits affichages ca et la, et c'est a ce niveau que ca plante ...
    C'est quoi un SOAPCall? Un appel au savon?

    Non sérieusement, SOAPCall n'est pas un objet Javascript standard. Donc il faut que tu nous en dises un peu plus sur le framework que tu utilises, etc....

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 77
    Par défaut
    Mdr.
    Lol oui c'est vrai que soapcall n'est pas un objet standard dans javascript mais il fait partie de L'API SOAP de Mozilla conçu pour créer, envoyer et recevoir des messages SOAP.
    Je me disais conaissant javascript l'auraient déja utilisé.
    Je vous fourni le code php équivalent qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        include('nusoap.php');
        $client = new soapclient('http://localhost/content/servicedetail.php');
        $parametres = array('id_contact'=>'1');
        $letab = $client->call('detail', $parametres);
        $num = count($letab);
        for ($i=0; $i<$num;$i++) {
            echo $letab[$i]."<br>";
        }
    Voila si quelqu'un l'a déja utilisé et peut m'en dire plus sur son utilisation ... je serais content.

  4. #4
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par WalidNat
    Mdr.
    Lol oui c'est vrai que soapcall n'est pas un objet standard dans javascript mais il fait partie de L'API SOAP de Mozilla conçu pour créer, envoyer et recevoir des messages SOAP.
    Je me disais conaissant javascript l'auraient déja utilisé.
    Ben non, j'ai jamais fait ça, moi.

    http://developer.mozilla.org/en/docs...based_Browsers

    Apparement, la seule différence avec ta méthode call est le permier paramètre. Tu es sur que la constante vaut bien 0?

    Tu as essayé d'afficher ton tableau de paramètres (params) pour voi si il a bien ce qu'il faut dans le ventre?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 77
    Par défaut
    C'est bon j'ai trouvé ce qui n'allait pas ...
    En fait c'est ma méthode encode qui ne parvenait pas à transformer mes paramètres ... tout simplement car ils étaient mal formulés.
    Je les donne au cas ou ca pourrait servir par la suite a quelqu'un d'autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    // créer un objet SOAPCall
        var appel = new SOAPCall();
        // localiser le service Web
        appel.transportURI="http://localhost/content/serviceDetail.php";
        // créer un tableau contenant des arguments de la fonction appelée
        // on crée le parmametre SOAP
        var param = new SOAPParameter();
        // On peuple ce paramètre avec le nom et la valeur du paramètre attendu par le service web
        param.name = "id_contact";
        param.value = id_contact;
        // on insere ce parametre dans le tableau conteneur de paramètres (exigé par soap)
        var params = [param];
        // créer un message SOAP
        appel.encode(SOAPCall.VERSION_1_1, "detail", null, 0, null, params.length, params);
        // appeler la fonction
        var result=appel.invoke();
        // charger et retourner le résultat du fonctionnement de la fonction
        var r=result.getParameters(false,{});
    En fait il fallait créer un objet SOAPParameters et lui donner un nom et une valeur, puis l'intégrer au tableau des parametres. Voila

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utilisation de l'objet getElementTagName
    Par shintoisme dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 11/06/2006, 21h53
  2. [9i] savoir la dernière utilisation d'un objet
    Par sygale dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2006, 09h04
  3. [COM] Utilisation d'un objet COM
    Par Sophy75 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 03/04/2006, 18h43
  4. Message d'erreur lors d'utilisation d'un Objet
    Par dirty_boy dans le forum Langage
    Réponses: 3
    Dernier message: 28/10/2005, 16h16
  5. Réponses: 4
    Dernier message: 25/10/2005, 08h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo