Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Services Web
Services Web Forum d'entraide pour les services Web en PHP, qui permettent de créer et de consommer facilement des webservices (génération de WSDL etc.). Exemples : SOAP, NuSOAP, REST, SCA-SDO... Avant de poster -> Cours webservices
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/05/2007, 14h31   #1
Membre habitué
 
Avatar de tintin72
 
Inscription : septembre 2003
Messages : 595
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 595
Points : 123
Points : 123
Par défaut [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 :
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 :
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
tintin72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2007, 22h10   #2
Membre habitué
 
Avatar de tintin72
 
Inscription : septembre 2003
Messages : 595
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 595
Points : 123
Points : 123
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 ?
tintin72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2007, 23h25   #3
Membre du Club
 
Inscription : juin 2002
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 44
Points : 51
Points : 51
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
Fincom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 09h32   #4
Membre habitué
 
Avatar de tintin72
 
Inscription : septembre 2003
Messages : 595
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 595
Points : 123
Points : 123
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
tintin72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 10h47   #5
Membre du Club
 
Inscription : juin 2002
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 44
Points : 51
Points : 51
un bon exemple en ligne: http://devzone.zend.com/node/view/id/689

Pour votre cas, ça donnerait:
Serveur SOAP
Code :
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 :
1
2
3
4
5
 
<?php
  $client = new SoapClient("hello.wsdl");
  print($client->hello("dietrich"));
?>
__________________
Merci
Have Fun !!!
Fincom
Fincom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2007, 18h46   #6
Futur Membre du Club
 
Inscription : avril 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 30
Points : 15
Points : 15
Bonjour,

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

ex :

Code :
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...
sorenson2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2007, 21h48   #7
Membre confirmé
 
Avatar de Mogwaï
 
Inscription : mai 2004
Messages : 247
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 247
Points : 243
Points : 243
Envoyer un message via MSN à Mogwaï
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 !
Mogwaï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2007, 01h25   #8
Membre actif
 
Avatar de bigsister
 
Homme OLE MAIN()
Développeur Web
Inscription : octobre 2002
Messages : 296
Détails du profil
Informations personnelles :
Nom : Homme OLE MAIN()
Localisation : France

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

Informations forums :
Inscription : octobre 2002
Messages : 296
Points : 191
Points : 191

Citation:
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é ?
bigsister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2008, 22h16   #9
Membre actif
 
Avatar de renaudjuif
 
Inscription : avril 2006
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 300
Points : 174
Points : 174
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 !
renaudjuif est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h27.


 
 
 
 
Partenaires

Hébergement Web