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

Bibliothèques et frameworks PHP Discussion :

[Web Service][SOAP] Débutant PHP/NuSOAP [Fait]


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut [Web Service][SOAP] Débutant PHP/NuSOAP
    Bonjour à tous,

    Je débute en php/nuSoap et j'ai un pb avec le script basique proposé sur le site de nuSoap.

    J'ai créé un fichier hello.php dans le répertoire basicService
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
      require_once("nusoap.php");
      $server = new soap_server;
      $server->register('hello');
     
      function hello($name)
      {
       return "Hello $name !";
      }
     
      $server->service($HTTP_RAW_POST_DATA);
    ?>
    et un fichier call.php dans le répertoire basicCall
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
     
      require_once('nusoap.php');
      $client = new soapclient('http://127.0.0.1/basicService/hello.php');
      echo $client->call('hello', array('name'=>'Dietrich'));
    ?>
    lorsque je charge la page call.php il n'y a que le mot Array qui s'affiche et pas le 'Hello Dietrich !' attendu.

    Quelqu'un pourrait-il m'expliquer d'où vient le pb ?


    D'avance merci

  2. #2
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut
    Bon, Apparement il y a un GROS problème avec PHP 5 et NuSoap.
    Le pb mentionné dans mon post se produit avec PHP 5.2.2 et Apache 2.2.4.
    Aprés m'être arraché les cheveux toute la journée , je suis d'abord revenu à la version 2.0.59 de Apache (au cas où). Mais le pb était toujours présent. Je suis ensuite revenu à la version 4.4.7 de PHP, et là miracle... ça marche!!!
    J'avoue que je n'ai pas le courage de réinstaller la version 2.2.4 de Apache pour compléter le test
    mais j'aimerais savoir si il existe un tuto complet sur l'installation de PHP 5 sous Windows.
    Peut être y a t-il une ligne de code à ajouter dans php.ini (ou ailleur) pour que ça fonctionne ?

  3. #3
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 44
    Points : 55
    Points
    55
    Par défaut
    Nusoap et PHP5 sont incompatibles.

    SOAP est implémenté dans PHP5, et fait partie de la SPL. et c'est ce qui explique le fait que ça fonctionne avec PHP4 et non pas PHP5. Le conflit provient principalement des noms des classes.

    Pour résoudre le problème:

    Oubliez Nusoap et utilisez uniquement l'extension SOAP fournie avec PHP5. Elle supporte les normes: soap 1.1 et 1.2 et le WSDL.
    Merci
    Have Fun !!!
    Fincom

  4. #4
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut
    Ah ok, ben c'est bon à savoir
    Est ce que quelqu'un pourrait me dire alors quel est le code équivalent à l'exemple ci-dessus mais avec l'extension soap de PHP 5 ?
    Je n'ai pas trouvé beaucoup d'exemples

    Merci d'avance

  5. #5
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 44
    Points : 55
    Points
    55
    Par défaut
    un bon exemple en ligne: http://devzone.zend.com/node/view/id/689

    Pour votre cas, ça donnerait:
    Serveur SOAP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    class HelloService {
      function hello($name) {
        return "Hello $name !";
      }
    }
     
    $server = new SoapServer("hello.wsdl");
    $server->setClass("HelloService");
    $server->handle();
    ?>
    Client SOAP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
      $client = new SoapClient("hello.wsdl");
      print($client->hello("dietrich"));
    ?>
    Merci
    Have Fun !!!
    Fincom

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    je tiens à préciser que l'on peut faire tourner nusoap sur php5.

    ex :

    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
    19
    20
    21
    22
     
    require("./lib/nusoap.php");
     
     
          $env="aaa";
          $login="bbb";
          $pass="ccc";
     
     
    $wsdl = "http://www.aaaa.fr/services/ddddd.wsdl";
    $client = new soapclient($wsdl,'wsdl');
     
    $param = array(array(
      "env" => $env,
      "login"  => $login,
      "pass" => $pass
      ));
     
    $results = $client->call('getLst',$param,$wsdl);
    print_r($results);
     
    }

    Il faut désactiver l'extension soap de php5. Cependant, il faut faire attention avec les serveurs dédiés de chez ovh (gentoo). L'extension SOAP de PHP5 n'est pas activée par défaut et pour l'installer, c'est une vrai galère...

  7. #7
    Membre actif Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Points : 278
    Points
    278
    Par défaut
    Si on en est à déterrer ce vieux topic, je conseille tout de même d'utiliser le module SOAP par défaut de PHP5 plutot que nusoap
    Etre à son compte, y'a rien de mieux !

  8. #8
    Membre actif Avatar de bigsister
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 314
    Points : 265
    Points
    265
    Par défaut

    je conseille tout de même d'utiliser le module SOAP par défaut de PHP5 plutot que nusoap
    A part le fait qu'il est bien sûr plus propre d'utiliser des fonctions natives et que les releases de nusoap sont rares apparement, pourquoi ce conseil exactement ?
    Nusoap est en SOAP 1.1 mais par contre en WSDL 1.1 et non 1.2. Est-ce que ça peut poser des problèmes de compatibilité ?

  9. #9
    Membre actif Avatar de renaudjuif
    Inscrit en
    Avril 2006
    Messages
    325
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 325
    Points : 258
    Points
    258
    Par défaut
    Bonjour, je relance le topic :
    J'utilise Nusoap sans problèmes depuis longtemps, j'ai renommé les classes quand je suis passé en php5 (soapclient en soapclientw) pour éviter les conflits...
    Mais maintenant je fais face à un problème et la seule explication (en tout cas la seule différence entre les ws qui marchent et celui qui ne marche pas) est la version AspNet...
    Ca marche en AspNet 1.xxxx, mais ça plante en AspNet 2.xxx.

    Savez-vous si c'est bien l'origine du problème, et si c'est vraiment ça, comment faire ?

    Merci pour vos éclaircissements.
    C'est curieux chez les marins ce besoin de faire des phrases !

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Webservice sans NUSOAP
    Citation Envoyé par Fincom Voir le message
    un bon exemple en ligne: http://devzone.zend.com/node/view/id/689

    Pour votre cas, ça donnerait:
    Serveur SOAP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    class HelloService {
      function hello($name) {
        return "Hello $name !";
      }
    }
     
    $server = new SoapServer("hello.wsdl");
    $server->setClass("HelloService");
    $server->handle();
    ?>
    Client SOAP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
      $client = new SoapClient("hello.wsdl");
      print($client->hello("dietrich"));
    ?>
    Bonhour,

    pouvez-vous préciser comment s'appellent les 2 fichiers et où ils doivent être placés sur le serveur ?

    Et wue devient le code si on n'a pas de fichier wsdl ?

    Merci.

Discussions similaires

  1. [Web Service][SOAP] client php et web service windev
    Par pev15 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 28/05/2010, 13h48
  2. [Web Service][SOAP] Client PHP et Serveur JAVA
    Par Asfaloth dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 05/05/2010, 11h19
  3. Appeler un web service SOAP en php avec un client JavaScript
    Par lord.66 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 05/06/2009, 14h04
  4. Appeler un web service SOAP en php avec un client JavaScript
    Par lord.66 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 31/05/2009, 12h42
  5. [Web Service][SOAP] Tableau php et type complexe ?
    Par tintin72 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 18/06/2007, 11h31

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