IBMi, Integreted Web Application Serveur V7.1

 

 

Il s'agit du nouveau serveur d'application intégré à l'OS pour distribuer les applications Java., remplaçant Tomcat, qui n'est plus fourni avec la V6.

 

Ce serveur support JSF, JSP, servlets et services web, et implique peu de ressources et d'administration, c'est le même que celui utilisé par DB2 WebQUERY, il est basé sur OSGI .

et vous trouverez plus d'infos à http://www-03.ibm.com/systems/i/software/iws/ et un comparatif entre WAS Express et ce dernier, ici .

il est disponible déjà en V5R40, tel qu'indiqué par l'APAR II14318 : PTFs - SI29102 and SI29567 are required for Integrated Application Server 7.1 enablement which DB2 Web Query uses.

 

Lancez le serveur d'administration HTTP, si ce n'est déjà fait par STRTCPSVR *HTTP HTTPSVR(*ADMIN)

Puis loggez vous sur http://<votreas400>:2001/HTTPAdmin/

   

infos apache,

Cliquez sur Finish, et voilà :

pour installez de nouvelles applications

Manage Installed application, puis Install

• le "point de montage"

si vous rafraichissez, vous devez voir

 

Pour installez WebAccess sur un serveur d'application intégré, vous devez :

Détails techniques

- le fichier /www/INTRANET/lwiCreateINTRANET.properties contient la trace de la création par l'assistant

- le contenu de httpd.conf contient ces lignes propres au serveur d'application intégré

LoadModule mod_ibm_lwi /QSYS.LIB/QHTTPSVR.LIB/QLWIIHSMOD.SRVPGM
LwiPluginConfig /www/INTRANET/conf/lwi-plugin-cfg.xml
< LwiProfile INTRANET>
 LwiAssignUserID QLWISVR
 LwiAutostartOption StartEnd
 LwiStartJobQueue QHTTPSVR/QZHBHTTP HTTPWWW
< /LwiProfile>

- le fichier lwi-plugin-cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
< Config RefreshInterval="300">
<Log LogLevel="Error" Name="/www/INTRANET/logs/plugin.log" />
<ServerCluster Name="serverCluster" RetryInterval="60">
<Server ConnectTimeout="0" Name="server1">
 <Transport Hostname="localhost" Port="10031" Protocol="http" /> (1)
</Server>
</ServerCluster>
<VirtualHostGroup Name="virtualHosts">
 <VirtualHost Name="*:10041" /> (2)
</VirtualHostGroup>
<UriGroup Name="URIgroup">
 <Uri Name="/*" /> (3)
</UriGroup>
<Route ServerCluster="serverCluster" UriGroup="URIgroup" VirtualHostGroup="virtualHosts" />
< /Config>

Vous noterez

  1. le port d'écoute du serveur d'application (10031, ici)
  2. le port du serveur apache, à modifier si vous modifiez le port d'écoute du serveur apache (80 par exemple)
  3. les URI ou point de montage :

Le même produit permet de monter un serveur d'application destiné à founir des services web

en même temps que la création du serveur d'application, vous allez déployer votre premier service web

Ici un programme W_RECAP de BDVIN0, attendant une zone PR_CODE, et retournant une DS nommée INFOCENTRE,
    ce pgm a été compilé avec PGMINFO(*PCML : *MODULE) , en V5R40 il faut SI27065 pour activer cette option.

Indiqué le nom publique du service et un texte explicatif

et précisez le sens d'utilisation des paramètres (automatiquement découverts par l'assistant grave à PGMINFO)
pour infos, voici un extrait du programme en ce qui concerne les paramètres :

 DPR_code          S              6  0    
 DINFOCENTRE     E DS                  qualified   

                                                              
C *entry plist
C parm pr_code
C parm infocentre

Les derniers groupes PTF (2009) apportent la possibilité de gérer en variable le nombre d'occurences d'une structure

 

Indiquez ensuite le profil utilisateur qui lancera le programme

indiquez aussi, la liste des bibliothèques à utiliser

et voilà, vérifiez les informations récapitulatives (regardez les ports IP attribués automatiquement)

liste des services (le votre, plus un exemple nommé ConvertTemp)

Les opérations admises

soit les informations que l'on peut demander :

w_recap, les paramètres retour transmis dans l'enveloppe SOAP
w-recap_XML, les données transmises dans un flux XML

 

Le serveur se créé

Puis, vous basculez automatiquement sur la gestion du serveur d'application de type web services V1.3, cette fois.

Vous pouvez, ici, revenir gérer les servies déployés, ou bien, en déployer de nouveaux.


(properties, permet de changer le profil ou d'éditer le fichier WSDL)

le WSDL pouvant être produit dynamiquement ou de manière statique (nouveauté) et donc être edité par vos soins

 

Mais surtout, vous pourrez tester votre service web, par le bouton "Test Service"

Choisissez l'opération w_recap ou w_recap_XML), ici w_recap

Ajoutez un paramètre en entrée, PR _CODE est automatiquement proposé et vous ne pourrez l'ajouter qu'une seule fois

puis ajoutez une valeur (là aussi, une seule occurrence, dans ce cas) et cliquez sur GO

la réponse vous est affichée dans la fenêtre Status

Ci dessous, le résultat de w_recap_XML

 

Vous pouvez tester aussi avec des produits standard comme soapUI

Installez et lancez le produit.

Créez un nouveau projet en indiquant les coordonnées pour acquerir le fichier WSDL sur le system i.

renseignez les valeurs envoyées en remplacant les ? par vos données (ici le producteur 45)

lancez (flèche verte en haut à gauche de la fenêtre Request1)


Si vous rencontrez des problèmes, voyez

Octobre 2008, une PTF SI32432 apporte les scripts suivants, qui à ce jour ne sont donc pas documentés, dans /Qibm/ProdData/os/webservices/V1/server/bin

createWebServicesServer.sh
deleteWebServicesServer.sh
getWebServiceProperties.sh
getWebServicesServerProperties.sh
installWebService.sh
listWebServices.sh
listWebServicesServers.sh
setWebServiceProperties.sh
setWebServicesServerProperties.sh
startWebService.sh
startWebServicesServer.sh
stopWebService.sh
stopWebServicesServer.sh
uninstallWebService.sh

pour le passage en production d'un service WEB, il faut passer en production l'objet *PGM (l'exécutable) et l'enregistrer ensuite par le script installWebService.sh


pour vous familiariser avec les scripts, passez la commande QSH (qui un émulateur de shell UNix sur AS/400) sur une ligne de commande OS/400

puis cd /qibm/proddata/os/webservices/v1/server/bin


ls vous affiche le contenu du répertoire, pwd vous affiche le répertoire en cours, etc...

listWebServices.sh -server WSERVICE, vous affiche les services disponibles d'un serveur donné.

si vous tapez le nom d'un script -help , il vous affiche une aide "limitée" (ainsi que si des paramètres sont manquants) , par exemple :

installWebservice.sh 
     
Command usage: 
   installWebService.sh 
   -server 'server-name' -programObject 'program-object' 
   [-service 'service-name'] [-pcml 'pcml-file'] [-userid 'userid'] 
   [-libraryList 'library-list'] [ -printErrorDetails ] [ -help ] 

   Where: 
   -server is the name of the Web services server in which the service
   will be installed. 
   -programObject is the integrated file system path to the ILE program or 
   service program. For example, '/QSYS.LIB/MYLIB.LIB/MYPGM.[SRVPGM or PGM]'
   -service is the name of Web service to be installed. This parameter is 
   optional. If not specified, the program object name will be used. 
   -pcml is a path to the PCML file. This parameter is optional. If not 
   specified, the program object must contain the PCML data. 
   -userid is the user profile that the Web service will run under. This 
   parameter is optional. If not specified, the Web service will run under 
   the Web services server user profile. 
   -libraryList is a list of libraries, that will be added to the library 
   list prior to invoking the Web service. Each library in the list must 
   be delimited by a colon. This parameter is optional. 
   -printErrorDetails will show additional error information, such as stack 
   traces and error codes, if the command fails. This parameter is optional.
   -help displays the command syntax. This parameter is optional. 


pour passer la commande directement depuis un CL

QSH CMD('/qibm/proddata/os/webservices/V1/server/bin/<votrescript.sh> paramètre1 paramètre2 ...')

2010, le dernier groupe PTF permet de déléguer des droits via l'administration graphique.

Sans cette délégation, il faut être *ALLOBJ et *IOSYSC FG pour administrer les serveurs mais aussi déployer les web services.

Ajoutons un utilisateur à la liste des utilisateurs autorisés :

Il faut ensuite spécifier les droits (globalement par type de serveur ou serveur par serveur)

regardons la gestion des droits par serveur :

le bouton Specify permet d'ajouter des serveurs

les droits sont bien enregistrés.


Enfin, les Groupes PTF de 2012 (SF99115 level 23 et SF99368 level 11) améliorent le serveur de Web service pour le faire utiliser Axis 1.5 (à la place de 1.3)

(voyez ce Wiki pour accéder aux dernières nouveautés)

Une fois installées ces correctifs vous verrez apparaître une option de migration

Vous aurez aussi d'autres options :

Copyright © 1995,2012 VOLUBIS