Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 21-02-2012 09:30:32

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

[RESOLU] Could not resolve host name

Bonjour,

J'expérimente avec PB9 l'appel du webservice d'un fournisseur ; après avoir déployé le WSDL avec le Web Service Proxy Wizard, j'ai codé l'appel suivant :

Code: pb

ls_proxy = "dqeaddressmatch"
lsc_dqe = Create SoapConnection
lsc_dqe.setOptions("SoapLog=~"C:\\soaplog.txt~"")
ll_ret = lsc_dqe.CreateInstance(lws_dqe, ls_proxy, "http://prod.dqe-software.com:7799/wsdl")
If ll_ret <> 0 Then
  Choose Case ll_ret
    Case 100
      ls_message = "Nom de proxy invalide (" + ls_proxy + ")"
    Case 101
      ls_message = "Impossible de créer le proxy"
    Case Else
      ls_message = ""
  End Choose
  MessageBox(gAppNom, "Une erreur est survenue à la création de l'instance DQE (" + String(ll_ret) + ")~r" + ls_message, StopSign!)
  lb_ret = False
Else
  Try
    lst_lsa.Liste = lst_dqe
    lst_lsa.MaxReturnedCandidate = 32
    lst_lsar = lws_dqe.LookupSingleLineAddress(lst_lsa)
  Catch (SoapException e)
    MessageBox(gAppNom, "Une erreur est survenue à l'appel de DQE.LookupSingleLineAddress :~r" &
      + e.getMessage(), Exclamation!)
    lb_ret = False
  End Try
End If


L'exception reçue est la susnommée "could not resolve host name prod.dqe-software.com" ; j'ai tenté le CreateInstance en utilisant le EndPoint par défaut (qui est le même que décrit ci-dessus), même problème. L'URL est bonne et non bloquée par notre proxy (testée dans un navigateur)

Quelle pourraient être les raisons de cette exception ?

Dernière modification par sbouvetJD (05-03-2012 14:38:12)

Hors ligne

 

#2 21-02-2012 10:05:12

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Could not resolve host name

Bonjour,

sbouvetJD a écrit:

L'URL est bonne et non bloquée par notre proxy (testée dans un navigateur)

Quelle pourraient être les raisons de cette exception ?

Si il y a un proxy "corporate", peut-être que les objets PB ne l'utilisent pas par défaut ?
Est-ce que

Code: pb

lsc_dqe.SetProxyServer (address, userID, password)
// ou
lsc_dqe.SetProxyServer (hostname, port, userID, password)


pourrait aider ?


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#3 21-02-2012 13:39:31

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: [RESOLU] Could not resolve host name

Bonjour,

Dans la mesure, on ton navigateur passe par un proxy, la résolution dns peut être réalisé par le proxy lui-même et non sur ton poste. Le fait que l'URL fonctionne dans ton navigateur ne garantit pas le fonctionnement à partir d'une autre application.

Pour vérifier cela, tu lances en ligne de commande sur le poste concerné l'utilitaire nslookup, à l'invite, tu tapes le hostname : prod.dqe-software.com. Si en réponse tu n'obtiens pas l'adresse ip correspondante au hostname, tu as certainement l'origine du problème => could not resolve host name.

Dans ce cas, tu peux éventuellement contourner le problème en ajoutant manuellement une entrée dans le fichier hosts du poste se trouvant dans le répertoire : C:\Windows\System32\drivers\etc ou utiliser un serveur dns dans la configuration réseau du poste qui te permette de résoudre cette adresse.

Hors ligne

 

#4 21-02-2012 13:51:27

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Could not resolve host name

buck a écrit:

Pour vérifier cela, tu lances en ligne de commande sur le poste concerné l'utilitaire nslookup, à l'invite, tu tapes le hostname : prod.dqe-software.com. Si en réponse tu n'obtiens pas l'adresse ip correspondante au hostname, tu as certainement l'origine du problème => could not resolve host name.

Ça dépend du navigateur :
- avec Chrome ou IE, les réglages concernant le proxy sont commun à ceux du panneau de configuration / Internet, et nslookup utilise ces réglages également
- avec Firefox, les réglages de proxy sont indépendants.

(Pour Opera, je ne sais pas).


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#5 21-02-2012 14:14:11

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [RESOLU] Could not resolve host name

buck a écrit:

Dans ce cas, tu peux éventuellement contourner le problème en ajoutant manuellement une entrée dans le fichier hosts du poste se trouvant dans le répertoire : C:\Windows\System32\drivers\etc ou utiliser un serveur dns dans la configuration réseau du poste qui te permette de résoudre cette adresse.

Merci pour ces éléments ; si cela venait à fonctionner, il me faudrait cependant le déployer sur tous mes postes utilisateurs ?

Hors ligne

 

#6 21-02-2012 16:04:18

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [RESOLU] Could not resolve host name

Après appel du SetProxyServerOptions, le message d'erreur a changé :
Unknown SOAP Response Tag http://schemas.xmlsoap.org/wsdl/#definitions (le problème est apparement référencé ici, mais j'ai mangé mon dictionnaire chinois/français ; sinon ici).

Question toute bête, les schémas XML sont-ils case sensitive ? PArce que si c'est le cas on est embêtés car les structures PB mettent tout en minuscule ?

Hors ligne

 

#7 21-02-2012 16:28:03

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Could not resolve host name

sbouvetJD a écrit:

Après appel du SetProxyServerOptions, le message d'erreur a changé :
Unknown SOAP Response Tag http://schemas.xmlsoap.org/wsdl/#definitions (le problème est apparement référencé ici, mais j'ai mangé mon dictionnaire chinois/français ; sinon ici).

Je ne pratique pas Soap, mais il faudrait vérifier ce qui est retourné. Ce n'est peut-être pas une réponse soap mais une page html du proxy qui indique que c'est bloqué ou introuvable. Si on ne peut pas sauver ce qui est retourné, il faudrait surveiller ce qui revient du réseau (c'est un peu un canon à mouche mais wireshark m'a souvent aidé pour diagnostiquer les problèmes liés au proxy ici).

D'ailleurs, est-ce que le webservice est hébergé sur une machine du réseau local ? Dans ce cas, il faut peut-être ne pas passer par le proxy et remplir le champ dans les réglages réseau qui permet de lister des machines à accéder directement.

sbouvetJD a écrit:

Question toute bête, les schémas XML sont-ils case sensitive ? PArce que si c'est le cas on est embêtés car les structures PB mettent tout en minuscule ?

Oui, les schémas XML sont case-sensitive (pour les entités et les attributs) mais il ne faut pas confondre le code PB, dans lequel les variables et fonctions ne tiennent pas compte de la casse, et les valeurs qui sont manipulées. Pour les strings PB est case-sensitive. À mon avis, le problème ne vient pas de là.


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#8 21-02-2012 17:18:41

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: [RESOLU] Could not resolve host name

Bonjour,

Je suis d'accord avec seki. Dans un premier temps, j'éviterai de passer par le proxy parce que tu utilises le port 7799 et je serais étonné que cela marche sans configurer spécialement le proxy pour cela.

Autre suggestion, on peut aussi être embêté avec les firewalls applicatifs "intelligents" présents maintenant en général avec tous les antivirus qui peuvent bloquer ta requête (vérifier le journal du firewall pour être sur que ça passe).

Hors ligne

 

#9 22-02-2012 08:25:45

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [RESOLU] Could not resolve host name

Concernant le port, c'est le port ouvert par notre fournisseur, donc on n'a pas choisi ;) Le webservice est hébergé chez notre fournisseur.
En testant ce webservice dans une page .net, cela fonctionne. Je vais faire un test en PB12, pour voir (parce que dans le white paper de Sybase, ils parlent d'une beta, donc je ne sais pas ce qu'il en est à ce jour, si la technologie WSDL a évolué entre 2002 et 2012.
Avec Pb 12 j'ai l'erreur "unknown error, problem with SOAP client"

Hors ligne

 

#10 22-02-2012 08:45:23

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [RESOLU] Could not resolve host name

J'ai trouvé l'article suivant sur pbdj.sys-con.com :

While PB9 did provide some original support for web services, it wasn’t until the 10.5 release when the .NET engine was added that such support became highly useable. The previous engine, built on the EasySOAP open source library, became largely feature frozen in 2002 when the EasySOAP project essentially became abandonware (http://en.wikipedia.org/wiki/Abandonware). The .NET engine introduced with PB 10.5 did bring the client proxy creation capability to current standards, but there are still some problems with the implementation. For example, PowerScript functions can’t return arrays, and the proxy object is limited to what PowerScript can support. As a result, you currently can’t create a proxy for a web service method that returns an array and expect to be able to do anything with the result (it gets cast as an “any” data type). There is also currently no support for WS-Security (most likely because that’s an add-on feature for .NET 2.x, not part of the original SDK) and for protocols other than SOAP (e.g., REST, JAX-RPC). It’s possible that those latter two issues will be addressed as Sybase implements support for WCF (Windows Communications Foundation) in PowerBuilder 12.0.

Or les méthodes du webservice appelé retournent des structures contenant des tableaux, ceci pourrait expliquer cela ?

Hors ligne

 

#11 22-02-2012 15:09:02

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [RESOLU] Could not resolve host name

D'un autre côté, j'appelle une méthode qui retourne une structure contenant une simple chaine de caractères, et j'ai le même problème.

Hors ligne

 

#12 22-02-2012 15:12:57

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Could not resolve host name

sbouvetJD a écrit:

D'un autre côté, j'appelle une méthode qui retourne une structure contenant une simple chaine de caractères, et j'ai le même problème.

Quel problème ? le retour « Unknown SOAP Response Tag » ?


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#13 22-02-2012 15:56:33

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [RESOLU] Could not resolve host name

seki a écrit:

sbouvetJD a écrit:

D'un autre côté, j'appelle une méthode qui retourne une structure contenant une simple chaine de caractères, et j'ai le même problème.

Quel problème ? le retour « Unknown SOAP Response Tag » ?

Oui ; mais mon prestataire va me fournir un exemple de code en mode REST (avec la technologie JSON - ça fait un peu film d'horreur quand même), je vous dirai ce qu'il en est.

Hors ligne

 

#14 22-02-2012 16:19:09

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Could not resolve host name

sbouvetJD a écrit:

Oui ; mais mon prestataire va me fournir un exemple de code en mode REST (avec la technologie JSON - ça fait un peu film d'horreur quand même)

Ça peut être intéressant à traiter, du JSON en PB

Ce qui est simple avec JSON c'est qu'il sérialise des objets en utilisant la syntaxe de leur création, par exemple si un résultat JSON contient { "FirstName" : "Jean", "LastName" : "Dubois" } il est trivial d'évaluer cette syntaxe avec eval() pour recréer l'objet dans un interpréteur javascript :

Code: js

eval("jsonObj="+http_request.responseText+";");
alert(jsonObj.FirstName + ' ' + jsonObj.LastName); //==> Jean Dubois


Une piste intéressante : une question relative à parser JSON  en PB est déjà passée sur le newsgroup PB. Il s'agissait de traiter le JSON par Wsh.

Par contre pour l'épouvante, je pense que j'ai déjà vu pire dans le code que je maintiens

Bon courage


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#15 05-03-2012 14:37:54

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [RESOLU] Could not resolve host name

La solution est la suivante :

Code: pb

ls_URL = "http://monwebservice.com?mesarguments"

lo_result = create n_Internet_Result
GetContextService("Internet", lo_net)

Try
    li_ret = lo_net.GetURL(ls_URL, lo_result)
    If li_ret < 0 then return ""

    ls_data = lo_result.of_getResult()
Catch (Throwable e)
    Return ""
End Try


Et après on écrit le petit parser qui va bien pour traiter le retour.

Dernière modification par sbouvetJD (05-03-2012 14:38:48)

Hors ligne

 

#16 05-06-2014 09:40:56

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: [RESOLU] Could not resolve host name

Je reviens sur ce topic pour ce qui est du json en PowerBuilder je viens de publier un objet entierement en pb classic :

Code: pb

json ln_json
ln_json = create json
string ls_error
ls_error = ln_json.parseURL("http://date.jsontest.com")
if ls_error = "" then
    messagebox("date", ln_json.retrieve("date") )
end if
destroy ln_json


source : https://github.com/xlat/pbjson, les remarques sont les bienvenues


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#17 21-12-2018 16:47:07

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: [RESOLU] Could not resolve host name

Petite précision, l'objet JSON gère les objets, tableaux, chaines, nombres et booléens.

Le projet inclus aussi une petite app de test :
https://i.postimg.cc/ZRXqNd6Y/image.png
https://i.postimg.cc/3wg1VXJV/image.png


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#18 21-12-2018 17:06:04

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Could not resolve host name

Super boulot 0000 pépites


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22