Skip to content

Introduction

Cette documentation est un guide de formation rapide pour construire une application Ewt. Il vient en complément de la documentation de référence mais ne la remplace pas.

Serveur d'application

En préambule, nous commençons par décrire comment mettre en place un serveur d'application. Pour ce faire, nous allons mettre en place un serveur Apache Tomcat et un environnement java.

Le but ici n'est pas de mettre en place un serveur de production, mais uniquement un environnement de développement qui nous permettra de réaliser les différentes leçons. Par conséquent les aspects de sécurité (notamment lié à l'utilisation d'un compte administrateur pour l'exécution du serveur) ne font pas l'objet de la présente documentation.

Java

Le site https://adoptium.net/temurin/releases/ fournit différentes versions de java. Pour notre exemple, nous choisissons la version jdk-17.0.15+6 pour Windows en architecture x64 au format ZIP.

À l'heure où ce document est rédigé, l'URL de téléchargement est:

https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.15%2B6/OpenJDK17U-jdk_x64_windows_hotspot_17.0.15_6.zip

Une fois le téléchargement terminé, nous dézippons le contenu de l'archive dans un dossier. Dans notre cas, nous dézippons dans le dossier C:\apps\java. L'exécutable java est donc disponible via le chemin suivant:

C:\apps\java\jdk-17.0.15+6\bin\java.exe

Apache Tomcat

Installation

Apache Tomcat peut être téléchargé depuis le site https://tomcat.apache.org/.

Ewt s'appuie sur jakarta et requiert par conséquent la version 10 ou supérieure. Dans notre cas, nous optons pour la version 10.1 au format ZIP (cliquer sur "Tomcat 10" dans la section "Download", puis cliquer sur "zip" dans la liste de "Binary Distribuions" pour la partie "Core").

À l'heure où ce document est rédigé, l'URL de téléchargement est:

https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.33/bin/apache-tomcat-10.1.33.zip

Une fois le téléchargement terminé, nous dézippons le contenu de l'archive dans un dossier. Dans notre cas, nous dézippons dans le dossier C:\apps. Le batch de démarrage de tomcat est donc disponible via le chemin suivant:

C:\apps\apache-tomcat-10.1.33\bin\startup.bat

Pour nous assurer que Tomcat démarre bien avec la version de java que nous avons téléchargé, nous modifions légèrement le script de démarrage de tomcat. Nous en profitons également pour définir le charset et fixer le mode de chargement des locales. Pour cela:

  • Éditez le fichier C:\apps\apache-tomcat-10.1.33\bin\startup.bat à l'aide d'un éditeur de texte du style Notepad, VS-Code ou Notepad++ (mais pas Word !)
  • Ajoutez les lignes suivantes après l'instruction setlocal du début de fichier puis enregistrez la modification (adaptez éventuellement au path que vous avez utilisé):

    set JRE_HOME=C:\apps\java\jdk-17.0.15+6
    set JAVA_OPTS=-Dfile.encoding=UTF-8 -Djava.locale.providers=COMPAT
    

On peut alors tester que le serveur démarre correctement. Pour cela il suffit de double-cliquer sur le fichier C:\apps\apache-tomcat-10.1.33\bin\startup.bat. Une fenêtre devrait s'ouvrir et afficher des informations en texte. On doit notamment y voir la mention de la version de java que nous avons installée.

Vous pouvez vous assurer que le serveur est bien en place en ouvrant un navigateur et en allant sur l'adresse http://localhost:8080/. Vous devriez alors voir apparaître la page d'accueil de Tomcat.

Configuration

La page d'accueil de Tomcat mentionne que, pour des raisons de sécurité, les accès à l'application de gestion d'applications est limitée. Nous n'allons pas utiliser cette application, mais nous devons malgré tout modifier le fichier de configuration des comptes utilisateurs.

En premier lieu, le serveur d'application peut être arrêté. Pour ce faire, effectuez un contrôle clavier CTRL+C dans la fenêtre de tomcat. Cela stoppe tomcat et ferme la fenêtre.

  • Éditez le fichier C:\apps\apache-tomcat-10.1.33\conf\tomcat-users.xml à l'aide d'un éditeur de texte
  • À la fin du fichier, juste avant la ligne </tomcat-users>, ajoutez les lignes suivantes:

    <role rolename="EWT"/>
    <user username="user" password="1234" roles="EWT"/>
    
  • Enregistrez les modifications

Nous avons ainsi préparé un utilisateur de test pour notre application et lui avons assigné un role EWT. Il s'agit d'un rôle technique qui est nécessaire pour se connecter à une application Ewt dans la configuration d'origine du moteur. Ce comportement peut être modifié en éditant le descripteur d'application web.xml présent dans le WAR d'Ewt. Ce sujet sera abordé dans le cadre d'une autre leçon.

Déploiements

Apache Tomcat est fourni nativement avec plusieurs applications Web. Nous avons déjà eu l'occasion de nous connecter à l'une d'elle lorsque nous avons ouvert la page http://localhost:8080/.

Dans la suite des leçons, nous n'aurons pas besoin de ces applications. Par conséquent nous pouvons les retirer (mais ce n'est pas obligatoire). Pour ce faire, ouvrez le répertoire C:\apps\apache-tomcat-10.1.33\webapps et supprimez les 5 dossiers qui y figurent.

Méthode de déploiement

Tout au long de ces tutoriels, nous restons neutres en terme de méthode de déploiement. Les leçons ne sont pas orientées vers un systèmes de déploiement en particulier et nous décrivons les opérations de façon volontairement "bas niveau" pour ne pas imposer de technologie particulière concernant le déploiement. Une automatisation des processus à l'aide d'outils plus avancés est possible mais ne fait pas l'objet des présentes leçons.

Profitons-en pour déployer Ewt. Pour ce faire, collez simplement le fichier ewt.war dans ce dossier webapps. L'application sera automatiquement déployée au prochain démarrage de tomcat. On peut le vérifier en démarrant à nouveau Tomcat, de la même façon que nous l'avons fait précédemment (double-click sur le fichier C:\apps\apache-tomcat-10.1.33\bin\startup.bat).

Gestion des accents dans la console Windows

Il se peut que la console Windows n'affiche pas correctement les accents et les caractères spéciaux. Cela vient du fait que le batch catalina.bat démarre la console à l'aide d'une instruction start.
Une solution simple pour pallier ce défaut consiste à modifier le batch de la manière suivante:

  • Éditez le fichier C:\apps\apache-tomcat-10.1.33\bin\catalina.bat
  • Ajoutez la ligne suivante juste en-dessous de l'instruction setlocal au début du fichier:

    chcp 65001
    
  • Recherchez et remplacez la ligne

    set _EXECJAVA=start "%TITLE%" %_RUNJAVA%
    

    par

    set _EXECJAVA=%_RUNJAVA%
    
  • Sauvegardez les modifications et relancez Tomcat

Le log de démarrage devrait alors indiquer que l'application "ewt" a démarré à l'aide d'un message de ce genre:

12:00:00.000 INFO  ch.epilogic.ewt.core.EwtMainInstance.<init>() @56 - === Creating new Ewt instance ===  
12:00:00.000 INFO  ch.epilogic.ewt.core.EwtMainInstance.<init>() @57 -

    ████████████████████████████████  
    ██        ██    ██  ██  ██    ██████  
    ██    ██  ██    ██  ██  ██        ██  
    ██        ██    ██  ██  ██    ██████  
    ██    ██████            ██    ██  ██  
    ██        ██            ██        ██  
    ████████████████████████████████████  
    version 0.0.1 🚀 build 3992  

12:00:00.000 INFO  ch.epilogic.ewt.core.EwtMainInstance.initialize() @118 - Ewt instance initialization  
12:00:00.000 INFO  ch.epilogic.ewt.core.EwtMainInstance.initialize() @119 -   log debug mode status: ON  
12:00:00.000 INFO  ch.epilogic.ewt.core.EwtMainInstance.initialize() @120 -   application root path: C:/opt/ewt/  
12:00:00.000 INFO  ch.epilogic.ewt.core.EwtMainInstance.initialize() @121 -   work directory: C:/apps/apache-tomcat-10.1.33/work/Catalina/localhost/ewt/  
29-Jun-2023 12:00:00.000 AVERTISSEMENT [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom La création de l'instance de SecureRandom pour le générateur d'id de session en utilisant [SHA1PRNG] a pris [282] millisecondes  
29-Jun-2023 12:00:00.000 INFOS [main] org.apache.catalina.startup.HostConfig.deployWAR Le déploiement de l'archive de l'application web [C:\apps\apache-tomcat-10.1.33\webapps\ewt.war] s'est terminé en [6'283] ms  
29-Jun-2023 12:00:00.000 INFOS [main] org.apache.coyote.AbstractProtocol.start Démarrage du gestionnaire de protocole ["http-nio-8080"]  
29-Jun-2023 12:00:00.000 INFOS [main] org.apache.catalina.startup.Catalina.start Le démarrage du serveur a pris [6675] millisecondes