Le serveur d’application JBoss


Récemment je me suis intéressé à JBoss pour le configurer dans un environnement de production. Si l’installation dun serveur est relativement simple (dezipper un fichier et définir deux variables d’environnement), cela se complique un peu si on désire personnaliser son environnement.

Je vous propose ci dessous mon retour d’expérience concernant cette installation.

Les étapes de cette installation

Les prérequis

JBoss est un serveur d’application Java, vous devez donc avoir un jdk installé sur votre machine (version 5.0 ou 6.0).

Le dezippage

Après le téléchargement de ce produit sur http://www.jboss.org/download/ il vous suffit de le décompresser dans le bon répertoire (par exemple /opt/jboss-4.2.2/).

L’environnement

C’est toujours très simple vous devez définir deux variables d’environnement JAVA_HOME et JBOSS_HOME pointant vers leurs répertoires d’installation respectif.

export JAVA_HOME=/opt/jdk1.5.0_15/
export JBOSS_HOME=/opt/jboss-4.2.2/

Vous pouvez dès à présent lancer l’application

$JBOSS_HOME/bin/run.sh

Personnalisation souhaitée

Je suis un habitué de Tomcat et Websphere avec lesquelles je personnalise facilement ma configuration. J’ai souhaité faire de même avec JBoss et après quelques recherches je suis arrivé à faire les adaptations souhaitées (ou presque).

  • Changer et déplacer le répertoire $JBOSS_HOME/server/default
  • Définir un répertoire spécifique pour les librairies communes à toutes les webapps (comme par exemple drivers jdbc, …)
  • Définir de nouveaux répertoires de déploiement
  • Externaliser le binding jndi (ne pas utiliser jboss-web.xml) : Là, je cherche encore, si vous connaissez une solution pour cela je suis preneur

Modifications

Il est possible de spécifier à JBoss un fichier de propriétés pour paramétrer son environnement d’exécution. Cela se fait tout simplement avec le paramètre –properties (à passer en ligne de commande ou en modifiant la variable JBOSS_CONF dans les scripts d’exécution).

Exemple :

#configuration to use, usually one of 'minimal', 'default', 'all'
#JBOSS_CONF=${JBOSS_CONF:-"default"}
JBOSS_CONF="production --properties=file:/www/jboss/jboss_startup.properties"

Cela donne par exemple

$JBOSS_HOME/bin/run.sh --properties=file:/www/jboss/jboss_startup.properties

Le fichier de configuration jboss_startup.properties

jboss.server.name=production
jboss.server.base.dir=/www/jboss
jboss.server.base.url=file:/www/jboss
jboss.patch.url=file:/www/jboss/ma_lib

Ce paramétrage permet de :

  • utiliser une configuration que j’appelle « production » (c’est le nom du répertoire /www/jboss/production)
  • a propriété jboss.patch.url permet de définir le répertoire des librairies communes.

Pour définir de nouveaux répertoires de déploiement vous devez modifier le fichier jboss-service.xml et changer la valeur de l’attribut URLs pour préciser ces repertoires

  <attribute name="URLs">
     deploy/, appli_paul/, appli_bernard/, datasource/
  </attribute>

Dans mon exemple je conserve le répertoire deploy/ (pour les applications d’origines JBoss livrées avec le serveur) et définis deux nouveaux répertories pour isoler les applications de paul et celles de bernard. Le répertorie datasource/ me permet de centraliser mes fichiers de configuration JNDI .

Pour aller plus loin

Be Sociable, Share!