|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
Bonjour,
Je n'ai ni ne connais véritablement Visual Studio .NET mais j'ai un client qui rencontre des difficultés à communiquer avec nos webservcies développés sous XMLRAD2005/Delphi7. Quelles indications puis je lui donner pour l'aider à développer son application ? Il tombe apparement systématiquement sur une page d'erreur HTML (Action non trouvée). De mon coter j'ai fait des tests avec un petit client HTTPRIO sous Delphi et ca passe bien. Quelles sont les étapes à suivre ? Michael |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() |
Je viens de voir qu'en fait XMLRAD se base sur le fait qu'il y ait "<SOAP-ENV:Envelope" dans la requête envoyé par le client ce qui est le cas pour HTTPRIO mais pas pour .NET.
il faudrait que tu modifies XMLApp pour accepter aussi <soap:Enveloppe pour .NET
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
Ok, mais j'ai pas .Net. Je ne sais donc pas ce qu'il envoie et donc ce à quoi je dois m'attendre dans XMLApp... Tu as un exemple de requete sous la main ?
Mais ca voudrait dire qu'un WebService XMLRAD n'est pas "universel", ou bien c'est la requete SOAP de VS.NET qui ne l'est pas ? Michael |
|
|
00
|
|
|
#4 | ||
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
Bon j'ai remplacé la ligne qui va bien par ca:
Code :
Michael |
||
|
|
00
|
|
|
#5 | |
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
Ben non ca suffit pas!
Citation:
Je ne veux pas jeter la faute sur VS ou sur XMLRAD, mais quand même, dire que XMLRAD fait du Webservice sans vérifier que ca fonctionne dans ce cas c'est un peu gros! Je vais etre obligé vu l'urgence de faire le necessaire. Peut on espérer que ca passe dans le haut de la wishlist ? Michael |
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() |
Malheureusement c'est ce qu'on appelle une heuristique.
la problématique est du fait que le point d'entré ezt le même pour des requête zHTTP classiquez venant du navigateur et des requêtez SOAP d'un client. il faut donc un critère permettant de différencier les 2 types de requêtes. malheureusement dans les heders HTTP rien n'est fixé pour annoncer comment interpréter le contenu. c'est a cela que sert le if pour invoquer ou non InitSoapRequest. Un choix a été fait à l'époque (ou d'ailleurs les webservices était seulement émergeant, .NET n'étant même pas sorti) XMLRAD a plus souvent était consommateur de Webservices (client) que Véritable serveur. Bref le critère de distinction est pas si évident que cela a faire. peut être qu'une réarchitecture sera nécessaire...
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Inscription : août 2003 Messages : 354 ![]() |
Disons qu'une "petite" modif permettrait de prendre en compte ce cas (VS est qd tres répendu!). Je l'ai faite et ca fonctionne bien (en manuel depuis IE, depuis app delphi avec HTTPRIO, et depuis une app VS.NET2005).
Les modifications ne touchent au finale que qqs lignes dans XMLApp et XMLService. Si ca interesse qqn je les posterais ici. Le principe etant de stockée le domaine de nom à l'arrivée pour réutiliser le bon par la ensuite. Ce serait bien que cette modif soit portée dans le standard Michael |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() |
envoie toujours la modif je la proposerai à l'équipe R&D pour la prochaine version.
__________________
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 ![]() |
Telle quelle la modif ne peut pas etre reprise pcq je passe par une variable globale (ou une constante mais c quiff quiff) dans xmlapp. Il faudrait stocker l'enveloppe dans le context! (genre un XMLC_SOAPENV), mais je n'y suis pas parvenu, je ne connais pas assez bien le framework pour le faire au bon moment.
Dans mon cas je suis sur que le client sera toujours VS... donc ca fonctionne, même avec des requetes concurrentes Je suis preneur de la version "propre" Modif sous XMLRAD2005R2. J'ai initialisé SOAP_ENV à 'SOAP-ENV'. XMLApp.pas, 3578 Code :
Code :
Code :
XMLService.pas, 374 Code :
Code :
|
||||||||||
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() |
c'est pas mal, mais effectivement cela reste encore trop spécifique
pour te donner une idée de la difficulté: actuellement il y un namespace (soap: ou SOAP-ENV et donc avec tes : partout cela fonctionnerait pas. pour savoir il faut pratiquemen parser le XML entièrement, mais encore faudrati-til savoir que c'est du XML qui est enovyé avec le ContentType on une idée mais pas toujours vrai non plus: text/xml, text/xml-SOAP, application/soap+xml, etc... pourtant la norme indique clairement application/soap+xml mais Microsoft ou Borland balance text/xml... sans parler que parser a chaque fois le contenu XML n'est pas non plus un négligeable en temps de traitement...
__________________
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 ![]() |
C'est clair, tous les cas ne seront que tres difficile à gérer... Mais le support de VS.NET peut etre tout de même relativement interessant, etant donné sa popularité! Je ne connais pas le format d'une app Java, mais avec un peu de chance elle n'est pas si différente non plus et donc avec une couverture de Borland/Microsoft/Java ca me parait suffisant
|
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() |
oui oui, de toutes facons ca s'étudie.
je relance la dessus.
__________________
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 ![]() |
Une erreur c'est glissée, voici la correction (un '/' manquait):
XMLApp.pas, 4506 Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com