V. Configurer GlassFish▲
La configuration du serveur d'applications GlassFish est similaire à celle exposée dans le livre de référence et résumée dans le fichier « readme.txt » livré avec le fichier d'archives de Yaps.
Afin de rendre ce document autonome, nous allons rappeler les commandes nécessaires pour configurer GlassFish.
Pour cela, vous allez utiliser les tâches Ant à partir de la ligne de commande.
LLV-A. Positionner les variables d'environnement▲
Avant tout, vous devez positionner les variables d'environnement nécessaires pour l'exécution des tâches Ant de configuration.
Rendez-vous dans le répertoire de l'application YapsON et exécutez le fichier de commande « setenv-yaps.cmd » :
C:> cd {yapson_home}
{yapson_home}> setenv-yaps.cmd
LLV-B. Créer le domaine « petstore »▲
Sous GlassFish, vous allez créer le domaine « petstore » dans lequel seront déployés les projets de l'application YapsON.
Les propriétés du domaine « petstore » sont les suivantes :
Name | petstore |
http port number | 8080 |
Admin port number | 8282 |
Admin username | admin |
Admin password | adminpwd |
Master password | masterpwd |
Exécutez la commande « asadmin » suivante afin de créer le domaine « petstore »:
{yapson_home}> asadmin create-domain --adminport 8282 --user admin --savemasterpassword=true -
-instanceport 8080 petstore
La procédure de création du domaine « petstore » vous demande de définir les mots de passe « admin » et « master » :
...
Please enter the admin password>
Please enter the admin password again>
Please enter the master password [Enter to accept the default]:>
Please enter the master password again [Enter to accept the default]:>
...
Pour rester conforme au livre de référence, vous allez introduire les mots de passe suivants:
- adminpwd pour le « admin » password
- masterpwd pour le « master » password
Pour terminer, la procédure vous informe des numéros de ports assignés au domaine « petstore » :
...
Using port 8282 for Admin.
Using port 8080 for HTTP Instance.
Using default port 7676 for JMS.
Using default port 3700 for IIOP.
Using default port 8181 for HTTP_SSL.
Using default port 3820 for IIOP_SSL.
Using default port 3920 for IIOP_MUTUALAUTH.
Using default port 8686 for JMX_ADMIN.
Domain being created with profile:developer, as specified by variable AS_ADMIN_PROFILE in
configuration file.
Security Store uses: JKS
Domain petstore created.
À ce stade, le domaine "petstore" est physiquement créé sous le répertoire « domains » de GlassFish :
{yapson_home}> dir {glassfish_home}\domains\petstore
...
06/11/2008 23:59 <DIR> .
06/11/2008 23:59 <DIR> ..
06/11/2008 23:59 <DIR> addons
06/11/2008 23:59 <DIR> applications
06/11/2008 23:59 <DIR> autodeploy
06/11/2008 23:59 <DIR> bin
06/11/2008 23:59 <DIR> config
06/11/2008 23:59 <DIR> docroot
06/11/2008 23:59 <DIR> generated
06/11/2008 23:59 <DIR> imq
06/11/2008 23:59 <DIR> java-web-start
06/11/2008 23:59 <DIR> jbi
06/11/2008 23:59 <DIR> lib
06/11/2008 23:59 <DIR> logs
06/11/2008 23:59 500 master-password
06/11/2008 23:59 <DIR> session-store
1 File(s) 500 bytes
15 Dir(s) 149.829.881.856 bytes free
Suppression d'un domaine sous GlassFish
Lors des phases de tests, on peut être amené à devoir supprimer un domaine.
Le script Ant « admin.xml » propose le target « delete-domain » pour supprimer un domaine de GlassFish.
On peut également directement utiliser l'interface d'administration de GlassFish comme illustré ci-dessous.
Tout d'abord, veuillez démarrer l'interface d'administration via la commande « asadmin » :
{yapson_home}> asadmin
...
Use "exit" to exit and "help" for online help.
asadmin>
À l'invite de l'interface d'administration, vous pouvez supprimer le domaine en utilisant la commande « delete-domain »:
delete-domain --domaindir {glassfish_home}\domains petstore
Domain petstore deleted.
Cette commande nécessite d'identifier :
- le répertoire « domains » de GlassFish
- le nom du domaine à supprimer (dans notre exemple, il s'agit du domaine « petstore »)
Pour sortir de l'interface « asadmin », il suffit d'introduire la commande « exit ».
LLV-C. Démarrer le domaine « petstore »▲
Le domaine « petstore » que vous venez de créer doit être démarré afin de poursuivre la configuration du serveur GlassFish.
L'application YapsON fournit le fichier « admin.xml » contenant des tâches qui permettent de démarrer et stopper le domaine.
Placez-vous dans le répertoire de l'application YapsON:
C:\> cd {yapson_home}
{yapson_home}>
Exécuter la tâche « start-domain » pour démarrer le domaine « petstore » :
{yapson_home}> ant -f admin.xml start-domain
Les traces doivent indiquer que le domaine « petstore » est correctement démarré :
...
[exec] Domain [petstore] is running [Sun Java System Application Server 9.1_02 (build b04-
fcs)] with its configuration and logs at: [C:\Program Files\glassfish-v2ur2\domains].
...
À ce stade, il est possible d'accéder à la console d'administration du domaine « petstore » au travers du lien suivant :
L'écran de login suivant apparaît :
Sur base de notre configuration (voir ici), les informations suivantes doivent être introduites :
- User Name : admin
- Password : adminpwd
La console d'administration apparaît à l'écran :
LLV-D. Localisation de GlassFish▲
Par défaut, la console d'administration de GlassFish utilise la localisation définie sur le système.
Nous allons décrire comment changer la localisation sous GlassFish:
- Ouvrez la console d'administration accessible à l'adresse http://localhost:8282.
- Connectez-vous avec votre compte administrateur.
- Sélectionnez le noeud Application Server.
- Sélectionnez l'onglet Advanced et ensuite Domain Attributes.
- Changez la valeur de l'entrée Locale pour y définir le code langue que vous souhaitez utiliser.
- Sauvez vos modifications.
La modification du code langue nécessite un redémarrage du serveur GlassFish.
La figure suivante illustre l'application de l'anglais (en-UK) comme langue de travail :
LLV-E. Créer les ressources Database▲
Les données de l'application Yaps sont maintenues dans une base de données de type Sun Java DB.
Sun Java DB et Apache Derby
Il n'existe pas de différence entre Sun Java DB et Apache Derby.
Apache Derby est packagé par Sun sous le nom Java DB.
Cette section décrit le processus de création de l'ensemble des ressources requises pour accéder et manipuler la base de données « petstoreDB ».
Base de données sous MySQL
La base de données de l'application Yaps peut être définie sous MySQL.
L'auteur du livre de référence décrit comment modifier la configuration pour supporter MySQL :
http://www.antoniogoncalves.org/xwiki/bin/view/Book/JavaEE5InstallMySQLFr
Commencez par vous placer dans le répertoire de l'application YAPS:
C:\> cd {yapson_home}
{yapson_home}>
LLV-E-1. Pool de connexions JDBC▲
Exécutez la tâche « create-connection-pool » pour créer le pool de connexions « petstorePool » :
{yapson_home}> ant -f admin.xml create-connection-pool
...
[exec] Command create-jdbc-connection-pool executed successfully.
...
En recherchant le statut « BUILD SUCCESSFUL », on s'assure que l'exécution de la tâche s'est correctement déroulée.
La tâche « list-connexion-pool » permet de vérifier que le pool de connexion JDBC a été correctement créé :
{yapson_home}> ant -f admin.xml list-connection-pool
...
[exec] __CallFlowPool
[exec] __TimerPool
[exec] DerbyPool
[exec] petstorePool
[exec] Command list-jdbc-connection-pools executed successfully.
[exec]
[exec] C:\Projects\YapsON>endlocal
BUILD SUCCESSFUL
Une autre manière consiste à se rendre sur la console d'administration de GlassFish.
Le pool de connexions JDBC se trouve à l'emplacement suivant :
Resources -> JDBC -> Connection Pools -> petstorePool
N'hésitez pas à inspecter les propriétés du pool de connexion « petstorePool ».
Les propriétés définies dans l'onglet « Additional Properties » seront utilisées plus tard lors de la création de la base de données :
LLV-E-2. Démarrer le serveur Derby▲
Avant de poursuivre le processus, il est nécessaire de démarrer le serveur de base de données Derby.
Exécutez la tâche « start-db » pour démarrer Derby :
{yapson_home}> ant -f admin.xml start-db
...
[exec] Starting database in the background.
[exec] Log redirected to c:\Program Files\glassfish-v2ur2/javadb\derby.log.
[exec] Command start-database executed successfully.
...
LLV-E-3. Créer la base de données▲
La base de données est créée en exécutant un « ping » vers le pool de connexion.
Exécutez la tâche « ping-connection-pool » pour créer la base de données « petstoreDB » :
{yapson_home}> ant -f admin.xml ping-connection-pool
...
[exec] Command ping-connection-pool executed successfully.
...
La base de données « petstoreDB » est maintenant créée sous le répertoire « javadb » de GlassFish :
{glassfish_home}\javadb\petstoreDB
LLV-E-4. Créer la source de données▲
La source de données (data source) permet à l'application d'accéder à la base de données.
Exécutez la tâche « create-datasource » pour créer la source de données « petstoreDS » :
{yapson_home}> ant -f admin.xml create-datasource
...
[exec] Command create-jdbc-resource executed successfully.
...
Utilisez la tâche « list-datasource » pour vérifier que la data source a bien été créée :
{yapson_home}> ant -f admin.xml list-datasource
...
[exec] jdbc/__TimerPool
[exec] jdbc/__CallFlowPool
[exec] jdbc/__default
[exec] jdbc/petstoreDS
[exec] Command list-jdbc-resources executed successfully.
Une autre manière consiste à se rendre sur la console d'administration de GlassFish.
Le pool de connexions JDBC se trouve à l'emplacement suivant :
Resources-> JDBC-> JDBC Resources-> jdbc/petstoreDS
LLV-F. Créer les ressources JMS▲
Vous allez maintenant créer les ressources JMS que sont la file d'attente (JMS topic) et la fabrique de connexion (Connection Factory).
LLV-F-1. Créer la fabrique de connexion▲
Exécutez la tâche « create-jms-connection-factory » pour créer la fabrique de connexion JMS (Connection Factory) « jms/petstoreConnectionFactory » :
{yapson_home}> ant -f admin.xml create-jms-connection-factory
...
[exec] Command create-jms-resource executed successfully.]
]></code>
<paragraph>
</paragraph>
</section>
<section id="V-F-2">
<title>Créer la file d'attente</title>
<paragraph>
Exécutez la tâche « <b>create-jms-topic</b> » pour créer la file d'attente (<b>JMS</b> topic) « jms/topic/order
»:
</paragraph>
<code langage="other"><![CDATA[
{yapson_home}> ant -f admin.xml create-jms-topic
...
[exec] Command create-jms-resource executed successfully.
LLV-F-3. Vérification▲
Utilisez la tâche « list-jms-resources » pour énumérer les ressources JMS définies sous GlassFish :
{yapson_home}> ant -f admin.xml list-jms-resources
...
[exec] jms/topic/order
[exec] jms/petstoreConnectionFactory
[exec] Command list-jms-resources executed successfully.
BUILD SUCCESSFUL
Vous devez vous assurer que la file d'attente « jms/topic/order » et la fabrique de connexion « jms/petstoreConnectionFactory » ont bien été créées.
Une autre manière consiste à se rendre sur la console d'administration de GlassFish.
Les ressources JMS se trouvent aux emplacements suivants :
- Resources -> JMS Resources -> Connection Factories
- Resources -> JMS Resources -> Destination Resources
LLV-G. Créer les loggers▲
Les loggers sont utilisés par l'application pour générer des traces (messages d'erreur, informations de debug, audit, etc.).
Exécutez la tâche « set-loggers » pour créer les loggers de chaque composant (petsore, barkbank, petex) :
{yapson_home}> ant -f admin.xml set-loggers
...
[exec] server.log-service.module-log-levels.property.com.yaps.petstore = FINEST
...
[exec] server.log-service.module-log-levels.property.com.barkbank = FINEST
...
[exec] server.log-service.module-log-levels.property.com.petex = FINEST
...
La console d'administration de GlassFish vous permet de vérifier la présence des loggers.
Rendez-vous à l'emplacement suivant :
Application Server -> Logging -> Log Level
La page « Log Levels » présente la section « Additional Properties » dans laquelle sont définis les loggers :
LLV-H. Fin de la configuration▲
À ce stade, nos environnements GlassFish et Derby sont configurés pour accueillir l'application Yaps.
Le reste du processus de configuration va se poursuivre sous NetBeans.
Vous allez maintenant stopper le serveur de base de données Derby et le domaine « petstore ». Ceux-ci seront démarrés en temps voulu sous NetBeans.
LLV-G-1. Stopper le serveur Derby▲
Exécutez la tâche Ant « stop-db » pour stopper le serveur de base de données Derby :
{yapson_home}> ant -f admin.xml stop-db
...
[exec] Command stop-database executed successfully.
LLV-G-2. Stopper le domaine « petstore »▲
Exécutez la tâche Ant « stop-domain » pour stopper le domaine applicatif « petstore » :
{yapson_home}> ant -f admin.xml stop-domain
...
[exec] Domain petstore stopped.