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
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 :