Bonjour,
Voila j'ai créé un webservice en java qui génère automatiquement un fichier WSDL, et je voudrais faire un client en php pour le tester...
Voila quelqu'un peut-il m'aider ?
Merci
Bonjour,
Voila j'ai créé un webservice en java qui génère automatiquement un fichier WSDL, et je voudrais faire un client en php pour le tester...
Voila quelqu'un peut-il m'aider ?
Merci
Salut à toi.
Ton WebService utilise-t-il les requetes SOAP ?
Vas-tu faire ce client avec PHP 5 ou une version inférieure ?
SOAP + PHP5 = fonctions natives de PHP
http://classes.scriptsphp.org/articl...e-web-en-php-5
http://devzone.zend.com/node/view/id/689
SOAP + PHP 4 et moins = Librairie NuSOAP
Jamais utilisé, donc pas de lien, mais l'utilisation est très similaire que les fonctions SOAP de php5.
Bon courage![]()
Hello,
Tu peux déjà tester avec soapui.
Cf. http://www.ericmery.fr/blog/category/php-soap/
A+
Voici mon code pour appeler le webservice :
et voici le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 include("lib/nusoap.php"); $client = new SoapClient("http://127.0.0.1:8080/Serveur/*****?wsdl"); print($client->getHelloWorld());
Voila je ne comprends pas pourquoi car la method detHelloWorld existe bien dans le webservice...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Fatal error: Call to undefined method soapclient::getHelloWorld() in C:\Program Files\wamp\www\WS\webservice.php on line 28
Hello,
Si tu es sur PHP5, je te conseille vraiment d'utiliser les fonctions natives :
Exemple avec ton code :
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // Instanciation du client $client = new SoapClient('http://127.0.0.1:8080/Serveur/*****?wsdl',array('trace'=> 1,'soap_version'=> SOAP_1_1)); // appel de la méthode getHelloWorld $retour_ws = $client -> __call('getHelloWorld', array($parametres));
Tu entends quoi par native, car je suis bien en PHP 5 mais si je met le code que tu viens de me donner sans aucun include ça me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Fatal error: Class 'SoapClient' not found in C:\Program Files\wamp\www\WS\webservice.php on line 30
Y faut que tu active l'extension SOAP quand même.
Si t'es sur Windows, décommente l'option dans le PHP.INI, si t'es sous Linux, il faut que tu recompile avec l'option SOAP (--enable-soap).
A+
Ok merci maintenant les fonctions sont appelées mais avec des messages d'erreurs![]()
cool, c'est surement du aux paramètres de ta web method qui n'en n'attend aucun alors que dans mon code, j'ai mis $parametres.
A+
Ah c'est bon ça fonctionne j'avais initialisé comme ça $parametres=""; au lieu de $parametres=array();
Merci![]()
Ah il y a une piège chinois lol.
Comment je fais quand mon webservice me renvoie un objet d'une classe créée pour le webservice...
Ben, normalement ca ne pose pas de problème.
Il faut au préalable que tu crée ta classe côté PHP correspondant à ta classe de l'autre côté.
Et quand tu récupères ton résultats, ton instancie ta classe.
Au pire fais un var_dump de la réponse SOAP et affiche le.
A+
et il existe un moyen de créer les classes coté PHP directement à partir du fichier WSDL ?
euh connait pas masi ça doit sûrement exister.
Si tu trouves, je suis preneur.
Moi, à chaque fois je les ai réécrites (que les attributs des classes, les méthodes pas la peine).
A+
Si dans ta réponse c'est une simple classe, il y a pas besoin de créer la classe en PHP.
T'as accès à tes paramètres de retour dans ton "$retour_ws". Tu chopes une classe par défaut (StdClass), mais tu accèdes au valeurs comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $retour_ws->var1; $retour_ws->var2; ...
Ouai bah je pense que je ne vais pas me prendre la tête c'était juste pour tester le webservice depuis un autre langage. J'ai la réponse SOAP qui est bonne donc ça va.
Mais si quelqu'un connait un moyen de générer les classes automatiquement à partir du fichier wsdl je suis preneur aussi
Je créé un nouveau sujet pour le génération automatique du client.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager