Soap, pb avec paramètres de fonction
Bonjour à tous
J'essaie de faire fonctionner un client SAOP en php (le serveur est un Tomcat avec AXIS 2)
L'utilisation d'une méthode fonctionne sans problème, mais les paramètres des fonctions ne sont pas passé au serveur. Après de nombreuses recherches sur internet j'ai trouvé une personne qui à le même problème que moi, mais il n'a pas trouvé de solution. :(
Voici un extrait du code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
$res = $client->getAttibute("tata");
if (is_soap_fault($res)) {
echo 'fault : ';
var_dump($res->__getLastRequest());
var_dump($res->__getLastRequestHeaders());
} else {
echo '<pre>'.var_export($res, true).'</pre>';
}
echo "<pre>\n";
// Retourne la requete envoyée au serveur
echo "Request :\n".htmlspecialchars($client ->__getLastRequest()) ."\n";
// Retourne la vraie réponse construite sur le serveur
//(souvent le message d'erreur produit dans le script du serveur
//que tu ne voies pas)
echo "Response:\n".htmlspecialchars($client ->__getLastResponse())."\n";
echo "</pre>"; |
Voici la requête envoyé au serveur. Elle ne contient pas le paramètre "tata" :(
Request :
Code:
1 2 3
|
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://webservice.arh.fr"><SOAP-ENV:Body><ns1:getAttibute/></SOAP-ENV:Body></SOAP-ENV:Envelope> |
Est ce quelqu'un a une solution à mon problème? De nouvelles pistes à explorer?
J'utilise WAMP 2.0 (j'utilise php 5.2.9)
Merci d'avance
[RESOLUT] Soap, pb avec paramètres de fonction
Je me répond à moi même.
Les données fournis au Webservice ne correspondaient pas au format attendu.
Une fonction de recevant en paramètre une chaîne de caractère (java.lang.string) est transformé en un type complexe
Code:
1 2 3 4 5 6
|
<complexType>
<sequence>
<element name="str" type="xsd:string"/>
</sequence>
</complexType> |
alors que une chaîne de caractère passé en paramètre correspondait à un type natif
Code:
1 2
|
<xsd:element name="in" type="xsd:string"/> |
Voici un extrait du code fonctionnant avec mon serveur:
Code:
1 2 3 4
|
$arr = array();
$arr['str'] = 'zozo';
$res = $client->str($arr); |
Merci à ceux qui ce sont penchés sur mon problème.