|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 5 ![]() |
Désolé pour le titre, je n'étais pas très inspiré.
voici mon problème : je veux créer un webservice en PHP5 qui sera appelé par un client C#/.Net 2.0 Ce web service devra retourner des types complexes. En fait des objets, pas des tableau de chaine. voici ce que j'ai essayé : création d'une classe PHP : Code PHP :
Code PHP :
Code XML :
Code PHP :
je n'arrive pas à trouver de documentation sur la création de webservices complexes en PHP, je tente donc ici de trouver de l'aide. peut-être mon problème vient du fichier wsdl ? ou bien de l'initialisation de l'objet SoapServer ? Je dois avouer que je suis un peu perdu et à cours de documentation ou d'exemple concret. Merci d'avance pour vos réponses. |
||||||||
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 5 ![]() |
J'ai trouvé la solution... c'est idiot.
Mon webservice marche très bien, c'est pas là qu'il fallait chercher : la fonction getAwkScript($id) prend en paramètre un entier. Pour une raison que j'ignore, Visual Studio en mapant la méthode depuis le fichier WSDL a mit un paramètre de type string. Alors moi en codant en C#, je vois un paramètre de type string... je passe donc à la méthode le paramètre "toto". et forcément "toto" ça ne se transforme pas en entier. d'où les insultes du serveur Soap. Si je passe "2", ça marche très bien. voilà, désolé pour le dérangement. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 5 ![]() |
Bonjour, désolé d'exhumer ainsi un vieux problème résolu, mais il restait un détail inexpliqué : Visual Studio qui prenait mon paramètre de type integer pour une chaine de caractères.
Il s'agit probablement d'un bug de Visual Studio : il n'aime pas du tout le type WSDL xsd:integer, en changeant ça par xsd:int, tout fonctionne parfaitement. Il y a je crois le même problème entre xsd:boolean et xsd:bool. Voilà qui met un point final à ce thread que je tenais à conclure. |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() ![]() Inscription : juillet 2006 Messages : 1 194 ![]() |
C'est probablement un problème de WSDL mis en cache.
Moi je travaille avec un OS de microsoft, un poison paralysant. Mais pour les autres plus chanceux il devrait suffire de mettre soap.wsdl_cache_enabled=0 dans la config php. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com