Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

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 29-03-2013 10:17:05

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 609
Pépites: 2,087
Banque: 3,536,631,712,504

[RESOLU] Webservice : comment pointer sur plusieurs serveurs

Bonjour,

J'ai un webservice qui pointe sur un serveur de production.

Je souhaiterais utiliser ce même webservice sur un serveur de développement pour les tests.

Le problème est que l'url est forcément différente, et positionnée lors de la création du projet.

Et lors de déploiement du projet, PB effectue la création du proxy avec ses différentes méthodes.

La question est donc, est-il possible d'utiliser un webservice qui pointe sur 2 serveurs différents ?

Merci d'avance,

Hors ligne

 

#2 29-03-2013 11:20:22

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

Re: [RESOLU] Webservice : comment pointer sur plusieurs serveurs

Le webservice accédé par proxy PB est hard-codé dans le marbre : pas du tout évolutif.
Si tu veux changer des paramètres, il faut le recompiler. Il est très probable que le changement d'url en fasse partie. C'est l'une des raisons qui a poussé xlat à accéder au webservice de la TVA intracommunautaire par du perl et plus par PB.

Je pense que tu pourrais tricher en définissant ton webservice sur l'url "prod" (à condition que les paramètres soient identiques y compris le port http) et sur les machines devant accéder à la version "dev" tu surcharges l'adresse du serveur dans le fichier "host" (sur mon winXP c'est dans C:\WINDOWS\system32\drivers\etc\hosts, et apparemment c'est pareil sur Win7)

Ce fichier est une correspondance nom de domaine / ip. Exemple chez moi:

Code:

127.0.0.1       localhost
127.0.0.1       mybox

Ici ça dit que si tu cherches à accéder à localhost c'est l'ip 127.0.0.1 et que mybox est aussi un alias vers la machine locale.

Tu pourrais ajouter une ligne avec l'ip du serveur de dev et le nom de la machine de prod, qui ferait accéder de façon transparente au serveur de test.
Pour désactiver une ligne, il suffit de mettre un '#' devant la prise en charge est immédiate dès enregistrement du fichier, pas besoin de redémarrer.


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 29-03-2013 12:00:18

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 609
Pépites: 2,087
Banque: 3,536,631,712,504

Re: [RESOLU] Webservice : comment pointer sur plusieurs serveurs

seki a écrit:

Je pense que tu pourrais tricher en définissant ton webservice sur l'url "prod" (à condition que les paramètres soient identiques y compris le port http) et sur les machines devant accéder à la version "dev" tu surcharges l'adresse du serveur dans le fichier "host" (sur mon winXP c'est dans C:\WINDOWS\system32\drivers\etc\hosts, et apparemment c'est pareil sur Win7)

Dommage, dans mon cas, c'est justement le lien http qui est différent, tout le reste est identique.

Et sinon, et bien je vais devoir demander une formation en PERL


Merci,

Hors ligne

 

#4 29-03-2013 12:56:09

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5120
Pépites: 97,187
Banque: 2,147,483,647

Re: [RESOLU] Webservice : comment pointer sur plusieurs serveurs

Sinon tu peux toujours créer les 2 proxies en dur dans ton appli et utiliser un switch (genre : ton_programme.exe /dev) qui indiquera à l'appli qu'il faut utiliser le proxy de dev ;)


TESTER C'EST DOUTER.http://imageshack.com/a/img547/2035/ed4o.jpg
N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#5 29-03-2013 13:38:55

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

Re: [RESOLU] Webservice : comment pointer sur plusieurs serveurs

wazou1812 a écrit:

Dommage, dans mon cas, c'est justement le lien http qui est différent, tout le reste est identique.

Heeuuu SHIFT*#INPUT/!ERROR$   Qu'est-ce que tu appelles "le lien http" ? La partie qui suit le nom de domaine (le ou les répertoires) ? Les 2 services tournent sur la même machine ?

wazou1812 a écrit:

Et sinon, et bien je vais devoir demander une formation en PERL

Je crois qu'Xlat avait publié un exemple


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

 

#6 08-04-2013 15:36:16

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 609
Pépites: 2,087
Banque: 3,536,631,712,504

Re: [RESOLU] Webservice : comment pointer sur plusieurs serveurs

Bonjour,

Pour une fois la solution était toute simple, elle se trouvait dans CreateInstance, ou il est possible de préciser le serveur sur lequel on désire pointer (ret = Conn.(myproxy, "syb_myport", "http://my.server/soap/myport")

Merci pour vos conseils,

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22