|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
[V28] Urgent : pb lancement Webservice depuis Webdev |
Débuté par bernard SOBRA, 28 nov. 2024 14:10 - 8 réponses |
| |
| | | |
|
| |
Membre enregistré 357 messages |
|
Posté le 28 novembre 2024 - 14:10 |
Bonjour à tous, J'ai l'habitude d'écrire des Webservices. J'en ai une collection dans mon projet qui s'exécutent tous parfaitement depuis l'explorateur (Chrome). Quand je les appelle depuis une application bureau sous Windows, ils s'exécutent aussi très bien. Mais quand je lance l'appel à l'un de ces WS depuis mon site écrit en Webdev, ils ne s'exécutent jamais, la variable de retour est "null".
St_WsResultat est un ST_WS_RESULTAT St_WsResultat = DR_WS.FREF_SAUVE_TABLE(Glo_I8_ClientEnCours) SI St_WsResultat.BIEN_PASSE = Faux ALORS Info("Erreur lors de la sauvegarde de la table FREF", résultat .MESSAGE_ERREUR) FIN
...
Le ws ne S'exécute jamais et la variable St résultat est toujours nulle.
Au secours, j'ai une dizaine d'appel au WS à faire, je galère, et c'est urgent maintenant.
Merci de votre aide, les amis.
-- Développeur Indépendant en Free-lance. Contactez moi par MP ou mel pour avoir mes conditions d'engagements. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 132 messages |
|
Posté le 28 novembre 2024 - 15:24 |
Bonjour
Je ne vois pas ou se trouve les erreurs, avant de le savoir, d'abords il faudrait que vous détectez les erreurs, de quoi il s'agit vraiment
Vous devrez écrire ce code
htRequête est un httpRequête htRequête..URL = "Votre url de liaison" htRéponse est un httpRéponse = HTTPEnvoie(htRequête) IF ErreurDétectée THEN // EDD (11/24) : Instruction pour détecter les erreurs Erreur(ErreurInfo(errComplet)) ELSE Info(htRéponse..Contenu) END
Ce code sait aussi les erreurs
St_WsResultat est un ST_WS_RESULTAT St_WsResultat = DR_WS.FREF_SAUVE_TABLE(Glo_I8_ClientEnCours) SI St_WsResultat.BIEN_PASSE = Faux ALORS Erreur(ErreurInfo(errComplet)) FIN
NB : Si le retour a des erreurs, ce ne serait pas difficile de le résoudre
Cordialement Mr.RATSIMANDRESY Niry Aina Eddy |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 357 messages |
|
Posté le 28 novembre 2024 - 18:42 |
Merci de ta réponse, Niry, voila le code que j'ai posé dans mon site et qui s'exécute normalement.
htRequête est un httpRequête
htRequête..URL = "http://192.168.10.238/DR_WS_WEB/awws/DR_WS.awws?wsdl"
htRéponse est un httpRéponse = HTTPEnvoie(htRequête) IF ErreurDétectée THEN Erreur("Erreur ",ErreurInfo(errComplet)) ELSE Info("Reponse correcte : ", htRéponse..Contenu) END Glo_ST_MonStResultat = DR_WS.CTRL_ARBO_CLIENT(Glo_I8_ClientEnCours) Info(Glo_ST_MonStResultat.ERR_MESSAGE)
A la lecture de la réponse, c'est la réponse correcte qui s'affiche (pas d'erreur). Mais le Webservice ne s'effectue pas.
D'autres idées ???
-- Développeur Indépendant en Free-lance. Contactez moi par MP ou mel pour avoir mes conditions d'engagements. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 198 messages |
|
Posté le 28 novembre 2024 - 21:39 |
Bonsoir Bernard,
Je ne vois pas trop l’intérêt d'utiliser la fonction HTTPEnvoie(). Surtout si le webservice a été importé dans le projet.
Par contre, avant de le consommer, il faut initialiser certaines valeurs :
WebService.Adresse = "http://192.168.10.238/DR_WS_WEB/awws/DR_WS.awws"
L'utilisation de ErreurDetectee() doit être effectuée juste après l'appel de l'opération CTRL_ARBO_CLIENT
Glo_ST_MonStResultat = DR_WS.CTRL_ARBO_CLIENT(Glo_I8_ClientEnCours) SI ErreurDétectée ALORS Erreur("Erreur consommation : " + ErreurInfo(errComplet)) SINON SI Glo_ST_MonStResultat.BIEN_PASSE ALORS Info("OK") SINON Erreur("Erreur opération : " + Glo_ST_MonStResultat.ERR_MESSAGE) FIN FIN
Cdt FabriceMessage modifié, 28 novembre 2024 - 21:39 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 198 messages |
|
Posté le 28 novembre 2024 - 22:19 |
Oups... Une erreur s'est glissée dans ma réponse précédente :
C'est pas WebService.Adresse mais DR_WS.Adresse :
DR_WS.Adresse = "http://192.168.10.238/DR_WS_WEB/awws/DR_WS.awws" |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 357 messages |
|
Posté le 30 novembre 2024 - 10:34 |
Bonjour Patrice, merci de ton aide !
Voila la pièce de code modifiée (avec un autre WS).
MonStResultat est un ST_WS_RESULTAT Str_AdresseWS est une chaîne = "http://192.168.10.238/DR_WS_WEB/awws/DR_WS.awws" DR_WS.Adresse = Str_AdresseWS DR_WS.IgnoreErreur=httpIgnoreCertificatInvalide+httpIgnoreNomCertificatInvalide+httpIgnoreCertificatExpiré
POUR TOUT F_CLIENT Glo_I8_ClientEnCours = F_CLIENT.CLI_ID POUR I_Annee = 2021 _À_ 2024 MonStResultat = DR_WS.MAJ_RESULTAT_DEPUIS_FEC(Glo_I8_ClientEnCours,I_Annee) SI ErreurDétectée ALORS Erreur("Erreur consommation : " + ErreurInfo(errComplet)) SINON SI MonStResultat.BIEN_PASSE ALORS Info("OK") SINON Erreur("Erreur opération : " + MonStResultat.ERR_MESSAGE) FIN FIN TraceConstruit("ANNEE %1 CLIENT %2 : %3", I_Annee, Glo_I8_ClientEnCours, MonStResultat.ERR_MESSAGE) FIN FIN
En fait, le contenue de mon retour de WS (la variable MonStResultat) est toujours vide avec un MonStResultat.BIEN_PASSE = faux. Je pense qu'il me manque encore quelque chose.....
-- Développeur Indépendant en Free-lance. Contactez moi par MP ou mel pour avoir mes conditions d'engagements.Message modifié, 30 novembre 2024 - 10:36 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 198 messages |
|
Posté le 30 novembre 2024 - 11:33 |
Bonjour Bernard, Difficile de répondre, n'ayant pas connaissance de la structure ST_WS_RESULTAT renvoyée par le webservice (JSON, XML,... ?) S'agit-il d'un webservice SOAP, REST ?
Dans un premier temps, essayes de stocker le résultat dans une chaine, plutôt que dans la structure ST_WS_RESULTAT. Si c'est du XML ou du JSON, tu devrais obtenir quelque-chose de "lisible"
Ensuite, dans la mesure où aucune ErreurDetectée n'est remontée lors de sa consommation, il est possible qu'une exception se produise dans le webservice lui-même, d’où un retour "vide" Il faudrait mettre en place des logs dans ce webservice afin de tracer précisément (ligne par ligne) le code exécuté dans les opérations.
FabriceMessage modifié, 30 novembre 2024 - 11:48 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 357 messages |
|
Posté le 02 décembre 2024 - 10:26 |
Merci Fabrice de tes bons conseils. Ces web services fonctionnent parfaitement quand on les lance depuis Windows. Avec une ligne de commande très simple. Ces web services fonctionnent parfaitement quand on les lance depuis. Depuis La Dédiée Sous chrome. Mais l'appel au web services ne fonctionne pas depuis le site. Pourtant, le site est sur le même serveur que les web services. C'est à n'y rien comprendre
-- Développeur Indépendant en Free-lance. Contactez moi par MP ou mel pour avoir mes conditions d'engagements. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 198 messages |
|
Posté le 02 décembre 2024 - 11:24 |
Bonjour Bernard,
C'est étrange car je ne rencontre pas ce problème
J'ai également un webservice SOAP et un site web (les 2 développés avec WD2024) sur le même serveur IIS et je te confirme que j'accède bien au webservice depuis le site web en local
En revanche, même si elle s’effectue en localhost ma connexion est sécurisée (https) ==> DR_WS.Utilisateur + DR_WS.MotDePasse sont renseignés Je n'ai jamais testé une connexion sans SSL donc je m'éloigne peut-être du sujet. Néanmoins, si tu décides de la mettre en œuvre, saches qu'il faut activer l’authentification de base sous IIS et Exiger SSL dans les paramètres du webservice
Si ton serveur est IIS, il faudrait aussi vérifier les logs... généralement situés dans \inetpubs\logs\LogFiles |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|