Chapitre 5. Configuration de JGenea Web
Comme cela a été vu précédemment, JGenea Web est constitué d'un unique
fichier ( jgenea.war ). Ce fichier contient les librairies java, les pages jsp,
les images et les fichiers de configuration. Donc, pour pouvoir changer la
configuration, il faut extraire tous ces fichiers inclus.
Pour ce faire, il suffit d'utiliser la commande jar disponible avec
le jdk précédemment installé. Elle est au même endroit que les commandes
java et javac.
Pour créer le fichier, on utilise l'option cvf; pour extraire les fichiers
contenus, l'option xvf et pour lister les fichiers contenus tvf.
bash$ jar cvf jgenea.war *
bash$ jar tvf jgenea.war
bash$ jar xvf jgenea.war
Configuration des bases de données dans JGenea Web
La configuration des bases de données dans JGenea Web se fait à deux
endroits: dans le fichier WEB-INF/classes/properties/Db.properties
et dans le fichier WEB-INF/struts-config.xml.
Le premier fichier contient deux clés permettant de lister
les pools de connexion disponibles ( bases ) ainsi qu'un descriptif des
données vers lesquelles elles pointent ( bases-desc ). Les descriptifs doivent être
relativement courts car ils sont affichés dans un menu déroulant
sur la page d'authentification du site.
Exemple 5.1. fichier Db.properties
# DB
bases=Perso,Test1
bases-desc=Ma base,Base hsql1
Attention
Les identifiants de pools de connexion de la clé bases
doivent correspondre à l'attribut key des définitions pools dans le fichier
struts-config.xml.
Le deuxième fichier contient la définition des pools de connexion pour
le framework Struts. Ils sont définis en début de fichier dans la balise
data-sources.
Un pool est défini par la balise data-source ( key
représente l'identifiant du pool. Les propriétés relatives au pool sont
définies au moyen de sous-balises set-property ayant l'attribut
property différent suivant la propriété.
Pour un fonctionnement correct, il faut définir les propriétés suivantes:
autoCommit: permet de déterminer
si les modifications sur la base sont validées automatiquement ou non. Il
est conseillé de le laisser à false.
description: permet de décrir la
base. Il peut être renseigner ou non. Ce paramètre n'a pas trop d'importance.
driverClass: permet de définir la classe
du driver jdbc qui sera utilisé pour se connecter à la base. Pour Hypersonic,
la valeur sera org.hsqldb.jdbcDriver.
url: permet de définir l'url jdbc
qui sera utilisé pour se connecter à la base. Elle spécifie pour une url
réseau la machine où se trouve la base et le port sur lequel elle écoute. Pour Hypersonic,
la valeur sera de la forme jdbc:hsqldb:hsql://machine:port.
user: permet de définir l'utilisateur
utilisé pour se connecter à la base.
password: permet de définir le mot
de passe de l'utilisateur spécifié pour se connecter à la base.
minCount: permet de définir le minimum de
connexions utilisées dans le pool.
maxCount: permet de définir le maximum de
connexions utilisées dans le pool.
Exemple 5.2. fichier struts-config.xml
<data-sources>
<data-source key="Perso">
<set-property property="autoCommit" value="false" />
<set-property property="description" value="Hsql" />
<set-property property="driverClass" value="org.hsqldb.jdbcDriver" />
<set-property property="maxCount" value="4" />
<set-property property="minCount" value="2" />
<set-property property="password" value="" />
<set-property property="url" value="jdbc:hsqldb:hsql://localhost:66" />
<set-property property="user" value="sa" />
</data-source>
<data-source key="Test1">
<set-property property="autoCommit" value="false" />
<set-property property="description" value="Hsql" />
<set-property property="driverClass" value="org.hsqldb.jdbcDriver" />
<set-property property="maxCount" value="4" />
<set-property property="minCount" value="2" />
<set-property property="password" value="" />
<set-property property="url" value="jdbc:hsqldb:hsql://localhost:67" />
<set-property property="user" value="sa" />
</data-source>
</data-sources>
Attention
Si un pool est mal défini ou n'arrive pas à se connecter à la base de
données correspondantes, JGenea Web ne se chargera pas correctement et ne
pourra fonctionner. Les messages d'erreur apparaîtront dans les logs de la
sortie standard du serveur applicatif.