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

XML/XSL et SOAP Discussion :

[SOAP] problème d'appel à une fonction


Sujet :

XML/XSL et SOAP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [SOAP] problème d'appel à une fonction
    Bonjour à tous ceux qui prennent le temps de lire ce message !

    Bon voilà ma situation : je suis en charge de réaliser un client pour un webservice. Le client devra principalement afficher des offres de location. Je précise tout de suite que je n’y connaissais rien en RPC il y a deux semaines de ça et je ne suis pas particulièrement doué en prog donc les choses sont un poil difficiles pour moi.

    Je me suis décidé à venir poster ici après pas mal de lectures par ci par là à propos des webservices (j’aime assez me démerder seul et je pars du constat que si je me suis posé la question il y a forcément quelqu’un qui se l’est posé avant moi avec pt être une réponse à la clef….)

    Donc j’ai décidé de développer mon client sous php5, de passer par soap comme protocole en mode WSDL, de me servir de la classe soap de php5, de parser mon (mes) flux avec simpleXML.

    J’utilise eclipse pour afficher mon wsdl et connaître ce qu’attendent les fonctions en paramètres.

    Mon WSDL est assez compliqué avec tout plein d’espaces de nom différents, des trucs que je capte pas encore et bien sûr je n’y ai pas accès (je veux dire par là que je ne peux le modifier….)
    Le voilà :

    http://cdt29.tourinsoft.com/soft/Rec...ion2.asmx?WSDL

    Après pas mal de tests j’arrive à me dépatouiller et à appeler certaines fonctions et à récupérer certains flux.

    Je bute sur l’appel de certaines fonctions plus complexes à utiliser en particulier getListingWithSearch qui attend en paramètre (idModule, un Dataset)
    Cette méthode sert à afficher des offres en fonction de champs cochés par l’utilisateur (champs eux mêmes récupérés par une fonction distante) Le dataset attendu correspond au dataset renvoyé par la fonction GetFieldsSearch (qui renvoye les champs sur lesquels on peut effectuer un filtrage) on l’on a renseigné le champ VALEUR qui dépend de la recherche à effectuer.

    Un peu de code pour illustrer mes propos :

    Création de mon client et appel de la fonction getFieldsSearch :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $client = new SoapClient('http://cdt29.tourinsoft.com/soft/RechercheDynamique/Syndication/controle/syndication2.asmx?WSDL',array('trace' => 1,'encoding'=>'utf-8' ));
     
    $param_getFS = array ('idModule' => '************************');
     
    $res_getFS = $client -> getFieldsSearch($param_getFS);
     
    $res_getFS = $client->__getLastResponse();
     
    $res_test = new SimpleXMLElement($res_getFS);
    L’appel à la function marche et je récupère bien ce que je veux.

    Appel de la fonction getListingWithSearch qui me pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $param_getLWS = array ('idModule' => '************************','FieldsSearch' => $res_test );
     
    $res_getLWS = $client -> getListingWithSearch($param_getLWS);
     
    $res_getLWS = $client->__getLastResponse();
    Ceux qui ont été attentifs remarqueront que je lui passe en paramètre un objet simpleXML alors qu’il attend un dataset correspondant à celui renvoyé par la fonction getFieldsSearch : mon problème se situe là !

    Pour tester j’ai essayé plusieurs choses, passer l’objet simpleXML en XML avec le fonction asxml() mais elle me renvoie un string et non un dataset donc le serveur soap n’arrive à traiter la requête, simplifier l’objet XML en en gardant que l’arbre à partir du nœud FieldsSearch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $res_test = $res_test -> xpath('//FieldsSearch');
    Là le serveur accepte ma requête mais me dit qu’il attend un dataset du type schema, du coup j’ai essayé en ne gardant l’arbre qu’à partir du nœud diffrgam mais l’espace de nom m’empêche d’utiliser la commande xpath(‘//diffgr :diffgram’).

    Je viens vers vous car je suis un peu perdu dans tout ça et j’espère qu’une bonne âme prendra un peu de temps pour m’aiguiller sur la bonne piste (je suis plutôt piste verte que piste noire……) et me remettre dans le droit chemin.

    J’espère avoir été assez clair pour vous faciliter la lecture ce post.

    J’aimerai connaître le $*¨^ »# qui a osé donner l’acronyme de SOAP (SIMPLE Object Access Protocol)……………..

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bon j'ai réussi à utiliser xpath pour l'élément diffgram qui avait l'espace de nom diffgr (diffgr:diffgram) en enregistrant l'espace de nom pour cette balise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res_test->registerXPathNamespace('diffgr', 'urn:schemas-microsoft-com:xml-diffgram-v1');
    Par contre j'ai la même réponse de la part du serveur soap :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object hasn't 'schema' property in /homez.16/quimperl/www/site2010/indexrecherche.php:132 Stack trace: #0 [internal function]: SoapClient->__call('getListingWithS...', Array) #1 /homez.16/quimperl/www/site2010/indexrecherche.php(132): SoapClient->getListingWithSearch(Array) #2 {main}
    je ne lui passe donc pas un dataset de la forme qu'il souhaite (type schema...)

    Je continue mes tests

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut solution ??
    Bonjour,
    J'ai les même problèmes, est-ce que vous avez trouvé la solution pour passer les bons paramètres dans getListingWithSearch ??
    Merci par avance

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par moodmood Voir le message
    Bonjour,
    J'ai les même problèmes, est-ce que vous avez trouvé la solution pour passer les bons paramètres dans getListingWithSearch ??
    Merci par avance
    Bonjour,

    Avez trouvé une solution ? Je rencontre exactement le même problème pour le passage du DataSet à la méthode getListingWithSearch

    Merci d'avance pour votre réponse !
    Cordialement

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    et non je n'ai pas trouvé !
    du coup j'ai laissé tombé !

    Bonne chance à vous !

    En tout cas je remarque que mon message fait écho mais que personne n'a la réponse ici ou que tout du moins personne n'a pris la peine d'y répondre malgré mon message initial assez détaillé !

Discussions similaires

  1. Problème d'appel à une fonction de Shell32.dll sous win server 2008
    Par ludogoal dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 05/06/2009, 15h06
  2. [Tableaux] problème d'appel à une fonction
    Par sam01 dans le forum Langage
    Réponses: 6
    Dernier message: 25/01/2007, 10h28
  3. Problème d'appel à une fonction
    Par gensty dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 21/09/2006, 15h37
  4. Réponses: 7
    Dernier message: 10/09/2005, 16h49
  5. [DLL] problème pour appeler une fonction d'une DLL
    Par bigboomshakala dans le forum MFC
    Réponses: 34
    Dernier message: 19/07/2004, 11h30

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