IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Soap, pb avec paramètres de fonction [PHP 5.2]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 15
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 75
    Par défaut
    Si tu n'utillises pas le mode WSDL il faut faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $client->__soapCall('getAttribute', array(new SoapParam('tata', 'mon_namespace:mon_parametre')));

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 15
    Par défaut [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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsd:element name="in" type="xsd:string"/>
    Voici un extrait du code fonctionnant avec mon serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $arr = array();
    $arr['str'] = 'zozo';
    $res = $client->str($arr);
    Merci à ceux qui ce sont penchés sur mon problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.0] [SOAP] Interroger fonction avec paramètres
    Par Enthau dans le forum Langage
    Réponses: 3
    Dernier message: 05/09/2012, 11h36
  2. appel procédure avec paramètres ds fonction
    Par cpattin dans le forum VB.NET
    Réponses: 7
    Dernier message: 14/06/2007, 23h11
  3. [Function]Appel de fonction avec paramètre
    Par julienOriano dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/06/2006, 08h48
  4. Fonction ou procédure avec paramètres optionnels ?
    Par [Silk] dans le forum Langage
    Réponses: 3
    Dernier message: 05/05/2006, 14h55
  5. Réponses: 4
    Dernier message: 11/09/2005, 02h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo