Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 05-11-2010 09:16:57

Asfaloth
Membre
Lieu: Bruxelles
Date d'inscription: 13-05-2008
Messages: 83
Site web

[Zend_Soap_Server] Problème de cache mystère WSDL

Bonjour à tous,

Je reviens vers vous pour un petit problème entre Zend_Soap_Server et Zend_Soap_AutoDiscover.

J'utilise la classique combinaison des 2 dans une action de mon controller:

Code:

 if(isset($_GET['wsdl'])) {
        $autodiscover = new Zend_Soap_AutoDiscover();
        $autodiscover->setClass($class);
        $autodiscover->handle();
        } else {
        $soap = new Zend_Soap_Server("http://monUrl/provisionning/webservice/client?wsdl");
        $soap->setClass($class);
        $soap->setPersistence(SOAP_PERSISTENCE_REQUEST);
        $soap->registerFaultException('Exception');
        $soap->handle();
        }

Jusque là, pas de problème.  Mais suite à une modification des phpDoc de la class utilisée dans l'autoDiscover Je me suis rendu compte de la chose suivante:  Le soapServer utilise une version en cache du wsdl mais je ne sais pas où. 

Je m'explique:

Si je fais un __getFunctions() à partir de mon client, les infos de fonctions sont correcte. 
Example: ici j'avais oublié un "@return bool", donc dans mon getFunctions, ma fonctions retournais "void". 
Après modif du code, __getFunctions me dis bien que la fonction retourne un boolean.

Mais si j'appelle la fonction, j'ai un "NULL"...
J'ai bien désactiver les caches wsdl dans mon php.ini à la fois sur le client et sur le server:

Code:

soap.wsdl_cache_enabled=0
soap.wsdl_cache_ttl=1

Et en désespoir de cause je l'ai rajouté dans le _init de mon controller:

Code:

public function init()
    {
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();
        ini_set("soap.wsdl_cache_enabled", 0);
        ini_set('soap.wsdl_cache_ttl', 1);
    }

Mais rien n'y fait, ça me retourne toujours un "NULL".
Pour le moment je l'ai contourné de façon brutale, j'ai fait un copy-paste du wsdl fournis par l'autodiscover et je l'ai placer autre part.
Ça marche mais ce n'est pas une solution viable.

Donc si quelqu'un a déjà eu ce genre de problème je suis tout ouie :-)


La capacité d'apprendre est un don.
La faculté d'apprendre est un talent.
La volonté d'apprendre est un choix.
-=[ Frank Herbert ]=-

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages