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