|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
Bonjour!
Je souhaite créer une application (XMLRAD2005) qui fournisse un ensemble de service Web. Il n'y aura donc aucune interface graphique. J'aimerais créer une action de login. Pas de problème pour créer ce XMLService, pour le publier et définir ses paramètres d'entrées-sorties (nom/mdp -> n° session qui sera à utiliser pour executer les autres servcies). Mon problème est que lorsque je transmets un nom et un mot de passe (via une requete SOAP (composant HTTPRIO sous delphi, ou via un XMLC_OUTPUTFORMAT=SOAP), le résultat renvoyé n'est pas simplement la valeur de ma session (présent dans une entrée du context), mais l'ensemble de ma grappe XML... Comment paramétrer mon application pour qu'un WebService réponde à un requete SOAP par une simple chaine de caractère? J'ai biensur positionné dans OutputParams le nom de l'entrée du context qui possède la valeur, mais il ne semble carrément pas en tenir compte... Il y a peut etre un XPath à renseigner qqs part, mais je n'ai pas trouvé! Je ne suis pas encore un grand habitué des WebServices, il y a surment un truc tout bete, pcq ca me parait élémentaire comme fonction Michael |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
En cherchant un peu je me suis rendu compte que c'etait systématiquement tout le document XML qui etait renvoyé. Le framework ne tiens pas compte des OutputParams (à part pour générer le WSDL).
Donc la solution si l'on ne veut renvoyer qu'une seule valeur, est simplement de créer une document XML avec un seul élément portant le nom du parametre (comme ce qui est fait pour la démo nommé Calc). Par contre je n'ai pas trouvé comment typer les valeurs de retour... Peut on définir le type (autre que xsd:string) des paramètres de sortie ? Michael |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() |
tu peux donner les examples de ce qui est retourné et de ce quie tu attends ?
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#4 | |||||
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
OK.
Pour les champs de type string, pas de soucis, on déclare ses paramètres en OutPutParams et on a le bon resultat: Code :
Dans d'autres cas, je souhaite renvoyer par exemple un ensemble de données ("dataset xml"). Mon OutPutParam est déclaré de la même façon et donc dans le WSDL j'ai toujours (si mon param est EQUS): Code :
Citation:
Michael |
|||||
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() |
je pense que ca va dépendre de ton binding-style (rpc ou document)
le duxième exemple doit être en mode document = document XML qu'il faut parcourri coté client.
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
Coté client?? pas sur...
Par contre j'ai vu que le WSDL pouvait etre générer en position binding-style à document si dans le context "BindingStyle" est à "document" justement. Existe-il de la doc sur cela ?? Comment générer un wsdl qui va bien... j'imagine qu'il faut créer les XSD qui correspondent aux services... pas facile! Je n'ai rien trouvé sur le site xmlrad, pourtant le framework parait avoir déjà prévu tout ces cas de figure... Comment faire pour renvoyer un véritable dataset en réponse soap ? Faut-il ajouter la description du schema "à la main" dans l'output ? Michael |
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
Et en plus c'est tres nul, le XSD n'est importé que si le WSDL ne décrit qu'une seule opération (un seul XMLService)... A quoi ca sert ????
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() |
Si j'ai bien compris tu veux le Schema pour que coté client il puissent le parser autoamtiquement poru le remplir dans un DataSet ?
c'est toujours ton client .NET ?
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
Dans le mille x2!
J'aimerais envoyer un ensemble de donnée (en gros le resultat d'un simple DBExtract) via le WebService (interface d'export). Mais du coté .NET je n'y connais pas grand chose et effectivement la parse automatique echoue car le schema renvoyé n'est apparement pas correct (?)! Je ne sais pas si c'est possible de le faire manuellement (certainement)? De leur coté, ils créent ce qu'ils appellent un "proxy"(?) mais l'appel de l'opération sur le webservice echoue si l'élement renvoyé n'est pas une simple valeur mais un ensemble de donnée. Donc j'ai décris un XSD le plus proche possible de ceux généré automatiquement par VS dans ce cas, mais cela ne fonctionne pas non plus. Si tu me dis qu'il y a d'autres solutions sous VS je suis preneur, j'ai du mal à croire qu'il ne soit pas capable de lire une grappe XML depuis un WebService même si le paramètre est décris comme un xsd:string. L'idée finale etant simplement de récupérer une liste de données sur un PDA depuis une application XMLRAD. J'esperais qu'en qqs clic sous XMRAD le webservice soit développé, mais au lieu d'y passer qqs heures, j'y ai déjà passé déjà 2 jours! Si tu as des infos/astuces/exemples coté VS, je les transmets volontier à mon client ;-) Michael |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() |
bon effectivement y a 2/3 trucs qui vont pas du tout pour que ce soit correct.
ca demande pas mal de travail pour la mise en conformité pour être appelé par .NET
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#11 |
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
Aie Aie Aie
Le wsdl généré en bindingstyle document ne parait pas correct non plus... l'élément "ServiceNameResponse" est vide, la description du shéma n'y est pas imbriqué mais est à la suite! Ca veut dire que pour mon projet (mise en production debut septembre), je vais devoir renvoyer du CSV ou un autre format dégradé (en esperant que ca ca marche!) ? Dommage... |
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() |
tout dépend du niveau d'exigence pour le client.
en .NEt tu peux quand invoquer ton service soit en SOAP soit en XMLC_OutputFormat=XML puis parser le contenu...
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#13 |
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
Ben disons que renvoyer bcp de lignes en CSV c'est pas génial et surtout on refait un saut de 10aines d'années en arrière! Et puis en XMLC_OUTPUTFORMAT=XML c'est plus du WebService!
Je pensais qu'une application XMLRAD etait "nativement" un WebService et je m'en ventais (XMLRAD aussi d'ailleurs, non?), mais ce n'est pas le cas à mon sens.... en tout cas je ne m'aventurerais plus sur ce terrain (mais je crois que c'est trop tard). Je risque de devoir baisser mon pantalon devant mes responsables... |
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() |
Je peux te fournir un patch non officiel pour que le Service soit invocable par VS.NET d'ici quelques jours si ca t'interesse...
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#15 |
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
Quand tu dis invoquables par VS, tu entends par ce fait que je pourrai lui envoyer un ensemble de données XML (resultat d'un DBExtract)?
Oui, et comment que ca m'interesse!! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com