Poursuivons ce sujet déjà abordé dans un précédent article.
Services Web en RPG ILE – Écrire un programme HLL
| Pour accéder à la première partie du dossier : « Consommer des services Web en RPG ILE » |
Nous allons évoquer aujourd’hui une amélioration très intéressante sur le sujet. Si vous vous rappelez, l’utilitaire wsdl2ws.sh d’Apache Axis nous permettait de générer tous les programmes clients nécessaires pour consommer un Service Web comme montré ci-dessous.
(((IMG6294)))
Il ne nous manquait plus qu’à écrire un programme HLL (en RPG ou COBOL) afin d’appeler ces programmes C/C++. La principale difficulté de cet exercice était de savoir lire un programme C/C++ afin de déterminer les bons paramètres attendus par ces « stubs ».
Dorénavant, nous pouvons utiliser le nouvel utilitaire wsdl2rpg.sh qui permet de générer les stubs directement en RPGLE facilitant ainsi grandement l’interface entre programmes. De plus, le résultat de la compilation n’est ni plus ni moins qu’un programme de service directement utilisable comme nous allons le voir.
L’utilitaire wsdl2rpg.sh est disponible par PTF en V5R4, V6R1 et V7R1 depuis le Janvier 2011.
|
|
V5R41 |
V6R1 |
V7R1 |
|
PTFs prélables |
SI42234 |
SI42236 |
SI42235
|
Source : APAR SE46281
Comme le précédent, cet utilitaire ce trouve dans le répertoire de l’IFS à l’emplacement :
/qibm/proddata/os/webservices/v1/client/bin
Reprenons l’exemple du Service Web gratuit StockQuote utilisé dans l’article précédent, permettant d’interroger directement la bourse de NewYork (NYSE). Vous pouvez le tester directement en ligne sur le lien suivant si le serveur n’est pas surchargé comme à son habitude.
Nous commencerons par créer un répertoire dans l’IFS.
MKDIR ‘/home/webservices’
Puis nous récupérons le fichier WSDL du service web et le plaçons dans l’IFS sous le nom StockQuote.WSDL : http://www.webservicex.net/stockquote.asmx?WSDL.
Sous QSH il nous suffit de lancer :
1. /QIBM/ProdData/OS/WebServices/V1/client/BIN/wsdl2rpg.sh -t60 -o/home/webservices -s/QSYS.LIB/MYLIB.LIB/STOCKQUOTE.SRVPGM /home/webservices/StockQuote.wsdl
-t : Ce paramètre facultatif permet d’indiquer un timeout en secondes
-o : Répertoire où seront générés les sources des programmes
-s : Répertoire ou sera généré le programme de service compilé, ici il s’agit de la bibliothèque MYLIB
Le dernier paramètre représente le fichier WSDL ou son URI ce qui veut dire que l’on aurait très bien pu demander la génération du programme de service et des programmes sources sans copier le fichier WSDL dans l’IFS en utilisant la syntaxe ci-dessous :
1. /QIBM/ProdData/OS/WebServices/V1/client/BIN/wsdl2rpg.sh -t60 -o/home/webservices -s/QSYS.LIB/MYLIB.LIB/STOCKQUOTE.SRVPGM http://www.webservicex.net/stockquote.asmx?WSDL
Code generation completed. Generated files in directory
'/home/webservices’.
Attempting to create service program...
Service program created. Service program is '/QSYS.LIB/MYLIB.LIB/STOCKQUOTE.SRVPGM'. $
Les fichiers sources et programmes générés sont les suivants :
|
/home/webservices |
DESCRIPTION |
|
|
|
|
StockQuoteSoap.c StockQuoteSoap.h |
Stub Axis en C++ (Corps et Entête) ayant servi à créer le module WSC0 dans la bibliothèque MYLIB |
|
|
|
|
StockQuoteSoap.cl |
Programme CLLE ayant servi à créer le programme de service STOCKQUOTE dans la bibliothèque MYLIB par assemblage des modules WSC0, WSR1 et WSR2 |
|
|
|
|
StockQuoteSoap.rpgle StockQuoteSoap.rpgleinc |
Procédures du Web Service (Corps et Entête) compilés dans le module WSR1 |
|
|
|
|
StockQuoteSoap_util.rpgle StockQuoteSoap_util.rpgleinc |
Utilitaires RPGLE (Corps et Entête) ) compilés dans le module WSR2 |
|
|
|
|
StockQuoteSoap_xsdtypes.rpgleinc |
Types standards de données utilisés en /COPY |
|
|
|
|
Bibliothèque MYLIB |
Type |
DESCRIPTION |
|
|
|
|
|
STOCKQUOTE |
*SVRPGM |
StockQuoteSoap Web service |
|
WSC0 |
*MODULE |
StockQuoteSoap.c |
|
WSR1 |
*MODULE |
StockQuoteSoap.rpgle |
|
WSR2 |
*MODULE |
StockQuoteSoap_util.rpgle |
|
|
|
|
Le seul fichier source qui va nous intéresser par la suite est StockQuoteSoap.rpgle ainsi que le programme de service STOCKQUOTE.SVRPGM.
Visualisons maintenant le contenu du source StockQuoteSoap.rpgle généré automatiquement. Trois procédures y sont définies :
1. stub_create_StockQuoteSoap
2. stub_destroy_StockQuoteSoap
3. stub_op_GetQuote
Voir Listing ci-dessous :
(((IMG6295)))
Téléchargez cette ressource
Mac en entreprise : le levier d’un poste de travail moderne
Ce livre blanc répond aux 9 questions clés des entreprises sur l’intégration du Mac : sécurité, compatibilité, gestion, productivité, coûts, attractivité talents, RSE et IA, et l’accompagnement sur mesure proposé par inmac wstore.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Face aux ransomwares, la résilience passe par les sauvegardes immuables
- L’IA, nouveau moteur des entreprises françaises d’ici 2030
- Gouvernance, cybersécurité et agents IA : trois défis clés à relever pour réussir la transition en 2026
- Top 5 des évolutions technologiques impactant la sécurité 2026
Articles les + lus
CES 2026 : l’IA physique et la robotique redéfinissent le futur
Les 3 prédictions 2026 pour Java
Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
Face à l’urgence écologique, l’IT doit faire sa révolution
D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
À la une de la chaîne Tech
- CES 2026 : l’IA physique et la robotique redéfinissent le futur
- Les 3 prédictions 2026 pour Java
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- Face à l’urgence écologique, l’IT doit faire sa révolution
- D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
