Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je suis en train d'essayer d'améliorer mon serveur Soap.
Celui-ci me sert en fait d'interface de connexion à des bases de données.
Je n'arrive pas à lui faire passer des wsdl supplémentaires.
Je m'explique dans le code :
//je récupère un paramètre $_GET['config'];
$configSection=$_GET['config'];
//Ce paramètre va me permettre de me connecter à telle ou telle base de données.
//Cela me permet en fait de changer une section précise d'un fichier ini de conf.
...
//à partir de ce paramètre, j'ai pu récupérer la classe que je vais attribuer à mon serveur soap
$loadedClass=....// classe chargée;
//ici c'est tout le processus de generation du wsdl etc....
if(isset($_GET['wsdl'])) {
$autodiscover = new Zend_Soap_AutoDiscover('Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex');
$autodiscover->setClass($loadedClass);
//$autodiscover->setPersistence(SOAP_PERSISTENCE_SESSION);
//$autodiscover->setPersistence(SOAP_PERSISTENCE_REQUEST);
$autodiscover->handle();
} else {
$options = array('soap_version' => SOAP_1_2);
$soap = new Zend_Soap_Server($conf->root."bootstrap.php?wsdl&config=".$configSection, $options);
$soap->setClass($loadedClass);
$soap->setPersistence(SOAP_PERSISTENCE_SESSION);
$soap->setPersistence(SOAP_PERSISTENCE_REQUEST);
$soap->handle();
}Le gros problème, c'est que lorsque j'appelle mon wsdl dans mon navigateur, celui-ci m'affiche bel et bien le WSDL en tenant bien compte du paramètre $_GET['config'], mais malheureusement lorsque j'essaye d'utiliser mon Webservice avec un Zend_Soap_client :
$wsdl="http://......bootstrap.php?wsdl&config=maconfig";
$options['soap_version']= SOAP_1_2;
$client=new Zend_Soap_Client($wsdl,$options);
Zend_Debug::dump($client->getResults('Select "é" from dual'));J'ai l'erreur suivante :
[WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://........./bootstrap.php?wsdl&config=' : Extra content at the end ....
Il n'a pas pris mon paramètre config :'(.
Une idée ?
merci par avance,
Dernière modification par gostbuster (02-12-2013 16:25:32)
Hors ligne
J'ai essayé d'instancier mon soap_client avec ceci
$options['uri']=$wsdl; $options['location']=$wsdl;
Et l'erreur que j'ai est "version mismatch" malgrè mes essai avec le paramètre soap_version....
Hors ligne