I. Introduction

Jonas est un serveur d'application J2EE. Il propose en outre la possibilité de déployer des solutions EJB et WEB avec une grande facilité. Complètement gratuit et Open Source, Jonas rattrape petit à petit son retard face aux serveurs J2EE commerciaux. Grâce à une organisation robuste et une facilité d'utilisation de plus en plus accrues, il permet à des petites et moyennes entreprises de développer des architectures complexes dans un environnement entièrement J2EE.

Mais ne vous y trompez pas, beaucoup de grandes entreprises font aussi confiance à ce produit. Il faut dire que c'est grâce à l'apport et aux soutiens des organismes tels que Bull, France Telecom et l'INRIA que ce produit a obtenu ses galons de serveur d'application. Même si, par rapport à ses homologues, Jonas n'est pas certifié par Sun comme un serveur J2EE (il faut dire que pour un organisme OpenSource, une telle certification demande beaucoup d'argent), il propose toutes les fonctionnalités que peut apporter un serveur J2EE classique.

Enfin, il bénéficie d'une communauté soudée et de plus en plus nombreuse permettant de trouver rapidement les solutions aux problèmes rencontrés dans les différents forums et mailing-list.

Bien entendu, certains me diront qu'en tant que débutant, ce n'est pas aussi évident d'amorcer une approche dans le domaine des serveurs J2EE. Alors, voici un tutoriel très simple qui vous montre pas à pas comment installer et configurer votre serveur Jonas, comment gérer et administrer ce serveur et comment déployer son premier EJB sur cette plate-forme. En regardant la suite du document, vous réaliserez vite que Jonas est à la porté de n'importe quel développeur.

II. Pré requis

Tout d'abord, pour ce faire, il nous faut les pré-requis suivants :

SDK J2SE que l'on récupère sur le site officiel de Sun1.4.1. J'ai utilisé la version .

Ant, un Make multi-plateforme basé sur Java que l'on récupère sur le site officiel d'Apache. J'ai utilisé la version 1.5.2.

BCEL, une librairie nécessaire à Ant pour compiler que l'on récupère sur le site officiel du projet Jakarta d'Apache. J'ai utilisé la version 5.1.

Jonas et Tomcat, les deux sont liés dans un seul package que l'on récupère sur le site officiel d'ObjectWeb. J'ai utilisé la version 3.2 pour Jonas et la version 4.1.24 pour Tomcat.

III. Installation

Une fois, que tout a été téléchargé, il suffit de dézipper SDK J2SE, Ant et le package Jonas/Tomcat. Je dézippe ces packages dans le répertoire C:\Appli. Lorsque ces packages sont dézippés, vous avez alors dans votre répertoire (C:\Appli) des répertoires tels que :

 
Sélectionnez
        apache-ant-1.5.2
        j2sdk1.4.1_02
        jonas-3-2

En général, on change le nom de ces répertoires, car sous certaines émulations de DOS, les noms longs des répertoires peuvent poser des problèmes, surtout dans les scripts. Ainsi, mieux vaut ne pas prendre de risques et passer des heures à chercher une erreur aussi bête que celle-ci. Nous obtenons donc les répertoires :

 
Sélectionnez
        C:\Appli\Ant
        C:\Appli\Jsdk
        C:\Appli\Jonas

Ensuite, il faut déplacer le package de BCEL dans le répertoire des librairies de Ant (C:\Appli\Ant\lib) afin que ce package soit pris en compte par Ant.
Attention, ce n'est pas le Zip qu'il faut mettre dans le répertoire des librairies mais le Jar contenu à l'intérieur.

IV. Configuration

Enfin, il nous faut déclarer un script (setenv) qui déclare les variables d'environnement nécessaires :

 
Sélectionnez
        @echo off
        set APPLI_HOME=C:\Appli
        set JAVA_HOME=%APPLI_HOME%\Jsdk
        set JONAS_ROOT=%APPLI_HOME%\Jonas
        set JONAS_BASE=%JONAS_ROOT%
        set CATALINA_HOME=%JONAS_ROOT%
        set CATALINA_BASE=%JONAS_ROOT%
        set ANT_HOME=%APPLI_HOME%\Ant
        set PATH=%JAVA_HOME%\bin;%JONAS_ROOT%\bin\nt;%ANT_HOME%\bin;%PATH%

IV-A. Pour les utilisateurs de Windows 98

Si vous êtes possesseur d'un Windows 98 alors des petites modifications s'imposent avant de lancer le script.
Tout d'abord, il vous faut télécharger le Zip suivant, ici.
Ce Zip contient les scripts de lancement des applications de Jonas 3.2 (scripts modifiés par moi-même) car les scripts fournis par Jonas ne sont pas valides dans l'émulation du DOS de Windows 98.
Après avoir téléchargé ce fichier, décompressez le dans le répertoire :

 
Sélectionnez
          C:\Appli\Jonas\bin

Le répertoire "win98" doit apparaître dans ce dernier. Bien entendu, vous devez modifier la dernière ligne de votre script (setenv.bat) :

 
Sélectionnez
          set PATH=%JAVA_HOME%\bin;%JONAS_ROOT%\bin\win98;%ANT_HOME%\bin;%PATH%

De plus, lors du lancement du script dans la fenêtre DOS, le message "mémoire insuffisante" risque d'apparaître. Pour contourner cette erreur, il existe une méthode. Créez sur votre bureau un nouveau raccourci et lorsqu'il vous demande la ligne de commande, tapez :

 
Sélectionnez
          C:\Windows\Command.com

Une fois le raccourci créé, faites un clic droit sur ce raccourci puis allez dans "Propriétés". Des onglets vont apparaître, choisissez l'onglet "Mémoire". Dans le bloc de la mémoire conventionnelle, vous avez l'environnement initial qui est en "auto". Modifiez cette valeur en allouant par exemple 4096. Ainsi, votre mémoire destinée à l'environnement initial aura une taille suffisamment importante pour que le message d'erreur "mémoire insuffisante" n'apparaisse plus. Donc à chaque fois que vous voudrez lancer une nouvelle fenêtre DOS, vous cliquerez sur ce raccourci qui initialise correctement votre mémoire d'environnement. Enfin il est aussi possible de changer la mémoire d'environnement sous DOS grâce à la commande :

 
Sélectionnez
          Command.com /E:4096

Puis vous n'avez plus qu'à lancer le script.
Attention, à chaque fois que vous ouvrez une nouvelle console, vous devrez lancer ce script pour que les variables soient initialisées. Mais vous pouvez aussi lancer ce script au démarrage de votre ordinateur afin que ces variables soient toujours prises en compte.

V. Vérification

Lorsque vous avez exécuté le script, vérifiez qu'il a bien été pris en compte. Pour cela, faites :

 
Sélectionnez
        echo %APPLI_HOME%

Cela devrait vous afficher : C:\Appli. Si ce n'est pas le cas, cela veut dire que le script n'a pas été correctement exécuté...
Maintenant, nous allons vérifier le bon fonctionnement du JSDK et de Ant. Pour cela, il suffit de lancer les commandes :

 
Sélectionnez
        java -version
        javac -help
        ant -version

Si aucune exception ou erreur n'apparaît, tout va bien. Pour Jonas et Tomcat, il faut aller dans le répertoire de ce dernier (C:\Appli\Jonas), puis lancer la commande :

 
Sélectionnez
        ant

Cette commande détecte le fichier build.xml puis s'occupe de créer les packages adéquats au bon fonctionnement.

VI. Lancement de Jonas

Il vous suffit finalement de lancer la commande :

 
Sélectionnez
        jonas start

Vous voyez le serveur démarrer les services, les uns après les autres et parmi ces services, vous aurez l'occasion de voir Tomcat démarrer. En effet, Tomcat est totalement intégré dans Jonas. Pour s'en rendre compte, il suffit de faire un "dir" dans le répertoire de Jonas. Et vous voyez le répertoire "conf" où se trouvent les fameux fichiers server.xml et web.xml. Vous voyez le répertoire "webapps" où se trouvent les applications Web (.war). De plus, vous voyez le répertoire "work" contenant l'activité dynamique des applications Web.

Si ce répertoire n'a pas été créé lors du lancement de Jonas, cela signifie sûrement que Jonas n'a pas eu les droits nécessaires pour le créer.
Enfin le répertoire "logs" contient les traces et log de Jonas et Tomcat. Ainsi, ces fichiers sont très utiles pour détecter et déboguer un problème.
Donc, comme vous pouvez le voir, tous les répertoires utiles à Tomcat sont présents. C'est d'ailleurs pour cela que, lorsqu'on a défini les variables d'environnement de Catalina et par conséquent de Tomcat, nous avons mis le répertoire de Jonas comme répertoire racine.

VII. Administration par interface Web

Les serveurs Jonas et Tomcat sont bien lancés, vous êtes en face de votre machine de guerre mais à part des affichages textuels, vous n'avez aucune assurance que tout fonctionne. Ne vous inquiétez pas, nous allons remédier à cela.
Beaucoup d'entre vous aiment les affichages Web tels que Webmin.
Si c'est le cas, la suite va vous émoustiller...
Démarrez votre navigateur préféré, puis tapez dans la barre d'url : http://127.0.0.1:8080/jadmin.
Une fois l'url validée, un login et un mot de passe devraient vous être demandés ; comme login : jonas et idem pour le mot de passe. Après cette authentification va apparaître une interface Web qui vous permet de configurer, administrer et gérer votre serveur Jonas.
Voici un petit aperçu de cette interface Web :

Image non disponible

Bien entendu, il existe aussi une interface web pour configurer, administrer et gérer Tomcat. Démarrez votre navigateur préféré, puis tapez dans la barre d'url : http://127.0.0.1:8080/tomcat-admin.

Une fois l'url validé, un login et un mot de passe devrait vous être demandé ; donnez comme login : tomcat et idem pour le mot de passe.
Voici un petit aperçu de cette interface Web :

Image non disponible

VIII. Déploiement et exécution d'un EJB

Bien, maintenant que vous avez eu l'occasion de bien jouer avec les interfaces graphiques et que vous avez vu les possibilités de gestion qu'elles offraient, nous allons tester notre premier EJB...
Pour cela, nous allons utiliser un exemple fourni par Jonas sur les Session Bean, car les exemples sur les Entity Bean dépendent des bases de données présentes sur votre machine, donc à voir au cas par cas.
Pour cela, allez dans le répertoire "ejbjars" de votre répertoire Jonas (C:\Appli\Jonas).
Puis tapez la commande :

 
Sélectionnez
        jonas admin -a sb.jar

Normalement un message de ce type doit apparaître pour confirmer l'ajout du module :

 
Sélectionnez
        JContainer.addBean : Op available

Enfin, il ne vous reste plus qu'à lancer le client grâce à la commande :

 
Sélectionnez
        jclient sb.ClientOp

Et voilà ce que vous devez obtenir à partir de cette commande :

 
Sélectionnez
        Create a bean
        Start a first transaction
        First request on the new bean
        Second request on the bean
        Commit the transaction
        Start a second transaction
        Rollback the transaction
        Request outside any transaction
        ClientOp OK. Exiting.

Si c'est le cas : Bravo !!! Vous venez de déployer et d'exécuter votre premier EJB sur le serveur JONAS
(je verse une larme d'émotion, la première fois c'est toujours un moment important).
Maintenant il ne vous reste plus qu'à créer vos propres EJB...

IX. Note et remerciement du gabarisateur

Cet article a été mis au gabarit de developpez.com.

Le gabarisateur remercie ced pour sa correction orthographique.