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