Ça donne quoi cette fois-ci dans le wsdl ?
Version imprimable
Ça donne quoi cette fois-ci dans le wsdl ?
ça donne le le wsdl que je veux avoir mais toujours j'arrive pas à récupérer la valeur du nouveau paramètre!!!!!?
Tu ne peux pas déboger autrement que en écrivant dans un fichier de log.
Avec les WS soap, il est pas possible de faire des vardump ou aussi dedans.
Je viens de voir, tu n'as pas dit que le paramètre que tu as ajouté est un objet.
Car la ça change tout tu dois créer une classe avec toutes les méthodes get et set ainsi que toutes les property's.
Ensuite tu dois l'ajouter dans le fichier app.yml un truc du genre :
Et la ça devrais mieux fonctionner.Code:
1
2
3
4soap_options: classmap: # mapping of wsdl types to PHP types DoubleArray: ckGenericArray
en fait le nouveau param n'est pas un objet c'est un simple int.
je constate un comportement bizard que je n'arrive pas à comprendre et je pense que la clé du problème est bien là :
la requête que j'envoie est celle là :
Et j'ai ça dans la méthode qu'exposée en ws :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://10.10.1.219:888/"> <soapenv:Header/> <soapenv:Body> <ns:AddAcces> <codeApplication>6d52872b810253a64f54ec4a9af7d0eb793689c2</codeApplication> <identifiant>0711223344</identifiant> <url>http://10.10.1.219:777/test</url> <indicatifRegional>33</indicatifRegional> <parametres> <!--Zero or more repetitions:--> <item> <name></name> <value></value> </item> </parametres> <texteOK>texteOK</texteOK> </ns:AddAcces> </soapenv:Body> </soapenv:Envelope>
Et quand je regarde dans les logs j'ai ça :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 /** * * * @WSMethod(name='AddAcces', webservice='CertiSMS') * * @param string $codeApplication code application * @param string $identifiant identifiant * @param string $url url * @param int $indicatifRegional indicatif Regional * @param CParametre[] $parametres * @param string $texteOK * * @return CSResult The result */ public function executeAddAcces($request) { /*$this->logMessage(__FUNCTION__.":". $_SERVER["SSL_CLIENT_CERT"],'debug'); if($_SERVER["SSL_CLIENT_CERT"]==""){ $this->result = new CSResult(errors::$ERROR_UNKNOWN," Authentification erreur "); return sfView::ERROR; }*/ $codeApplication = $request->getParameter('codeApplication'); $identifiant = $request->getParameter('identifiant'); $url = $request->getParameter('url'); $indicatifRegional = $request->getParameter('indicatifRegional'); $parametres = $request->getParameter('parametres'); $texteOK = $request->getParameter('texteOK'); $this->logMessage(__FUNCTION__.": $codeApplication '$identifiant' $url '$indicatifRegional'". serialize($parametres) ."$texteOK ($request)",'debug'); $this->logger->info(__FUNCTION__.";soap;INFO;0;codeApplication ================ :".$codeApplication); $this->logger->info(__FUNCTION__.";soap;INFO;0;identifiant ===================== :".$identifiant); $this->logger->info(__FUNCTION__.";soap;INFO;0;url =========================== :".$url); $this->logger->info(__FUNCTION__.";soap;INFO;0;indicatifRegional ================= :".$indicatifRegional); //$this->logger->info(__FUNCTION__.";soap;INFO;0;parametres =================== :".$parametres->getName()); $this->logger->info(__FUNCTION__.";soap;INFO;0;texteOK ======================= :".$texteOK);
Je récupère bien la valeur du nouvel parm mais pas dans la bonne variable!!!!?Code:
1
2
3
4
5 2012/04/06 16:16:50;executeAddAcces;soap;INFO;0;identifiant ===================== :0760494312 2012/04/06 16:16:50;executeAddAcces;soap;INFO;0;url =========================== :http://10.10.1.219:777/test 2012/04/06 16:16:50;executeAddAcces;soap;INFO;0;indicatifRegional ================= : 2012/04/06 16:16:50;executeAddAcces;soap;INFO;0;texteOK ======================= :33