Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
j'ai un probléme au niveau Zend_Soap_Client
j'ai une methode qui appele:
$client = new Zend_Soap_Client($wsdl);
quand je fait ça:
var_dump($client->getFunctions());
il me renvoi bien les noms de mes methodes,mais il ne l'execute pas
quand je fait ça:
$client->method($var1,$var2);!!!!
meme si je fait un simple die('toto'); j'arrive pas à le voir;;
et tout ça sans erreur!!!!
J'arrive pas à resoudre le probleme SVP qqun pourrait m'aider
Merci
Hors ligne
Salut, tu parles de la partie client mais as tu développé ou à disposition la partie "serveur" de ton webservice ? Car si tu ne l'as pas c'est normal que tu n'ai aucun retour. Normalement à la fin de ton wsdl tu indiques l'adresse de ton serveur.
Hors ligne
Merci Orkin pour la réponse;
oui j'ai déja dévloppé la partie serveur:
include 'Zend/Soap/AutoDiscover.php';
include 'Zend/Soap/Server.php';
....
class MyClass {
/**
* Cette méthode accepte ...
* @param string $ws_name
* @param string $ws_methode
* @param boolean $bool
* @return string
*/
public function loggerWs($ws_name,$ws_methode,$bool) {
return "hello";
/*...*/
}
}
if(isset($_GET['wsdl'])) {
$autodiscover = new Zend_Soap_AutoDiscover();
$autodiscover->setClass('MyClass ');
$autodiscover->handle();
} else {
// pointing to the current file here
$server = new Zend_Soap_Server(null, array());
// Connecte la classe au serveur Soap
$server->setClass('MyClass ');
// Connecte un objet déjà initialisé au serveur Soap
$server->setObject(new MyClass ());
$server->handle();
}
mais malheureseument toutes mes methodes retourne NULL avec void loggerWs(anyType $ws_name...
MErci pour votre aide
Hors ligne
SVP les aides
Hors ligne
kimoucom a écrit:
SVP les aides
Tu as le droit d'être patient aussi .
Si tes méthodes retournent toutes NULL c'est qu'il y a un problème côté serveur. Pour testé ton webservice tu peux télécharger le logiciel SoapUI qui va te permettre en prenant ton WSDL en entrée d'interroger tes méthodes et d'essayer de voir ce qui ne fonctionne pas.
Ensuite je n'appelle pas ça développer la partie serveur. Le code que tu link ne ressemble à rien ... En développement objet on ne met pas du code hors de la classe mais bon admettons ... Ton WSDL doit contenir des méthodes du genre :
getPanier
getId
getXX
etc ...
Hors côté serveur je ne vois rien, tu as beau avoir un loggerWS ça ne changera rien. Lorsque tu vas appeler cette méthode tu vas lui préciser ses paramètres dont le $ws_methode mais elle fait quoi cette méthode ? Et comment ?
Ton WSDL te permet de connaitre les types d'objets à passer en paramètre d'appel et le type d'objet retourné mais il ne décrit pas comment est retourné ce type d'objet.
Tu n'as pas implémenter les méthodes présentes dans ton WSDL donc forcément quand ton client va appeler une méthode présente sur le WSDL, celui-ci va interroger le serveur et lui demander d'exécuter la méthode en rapport avec la demande. Hors comme cette méthode n'est pas développé côté serveur, celui-ci ne peux pas l'inventer.
Hors ligne