La quatrième et dernière méthode consiste à utiliser la classe d'assistance WrapperJarApp pour lancer l'application.
Il s'agit d'une autre façon simple de s'intégrer au Wrapper lorsque l'application est
déjà configurée pour s'exécuter en tant que jar exécutable.
Il y a cependant quelques points à prendre en compte lors de l'utilisation de cette méthode.
Lorsque le Wrapper arrête la JVM, il n'y a pas d'appel direct à une application lui demandant de s'arrêter proprement.
Le Wrapper quittera plutôt la JVM en appelant System.exit() depuis l'intérieur de la JVM.
Si l'application a enregistré son propre
Shutdown Hook,
celui-ci sera invoqué, donnant à l'application une chance de s'arrêter proprement.
Si, en revanche, aucun Shutdown Hook n'est enregistré, l'application se terminera soudainement
comme lorsque l'on appuie sur CTRL-C dans la console (fenêtre de commande).
Dans les deux cas, avec ou sans Shutdown Hook, le comportement est exactement le même que si l'application s'exécutait sans le Wrapper.
Lors de l'intégration avec cette Méthode 4, la classe d'assistance WrapperJarApp replace la classe principale d'une application.
Cela donne à la classe WrapperJarApp l'occasion d'initialiser immédiatement le
WrapperManager et d'enregistrer la JVM auprès du Wrapper.
La classe WrapperJarApp gère ensuite toutes les interactions avec le Wrapper ainsi que le cycle de vie d'une application.
Lorsque le Wrapper envoie un message de démarrage à la JVM via le WrapperManager,
le manifeste du jar est inspecté et sa classe principale configurée est appelée.
La classe WrapperJarApp crée un nouveau ClassLoader, capable de charger des classes à partir
du jar exécutable ainsi que de tout autre fichier jar référencé dans son fichier manifeste.
La classe d'assistance WrapperJarApp est informée de la façon de lancer l'application en passant l'emplacement absolu ou relatif du
fichier jar exécutable, suivi de tout paramètre d'application supplémentaire, à la méthode main de WrapperJarApp.
Instructions détaillées
Cette section vous guide à travers une explication détaillée de la façon de configurer
JBoss pour qu'il s'exécute dans le Wrapper.
La plupart des autres applications déployées en tant que jars exécutables peuvent être intégrées en suivant les mêmes étapes.
Installer JBoss
Ce tutoriel commence par une installation propre de JBoss.
Nous avons utilisé JBoss EAP 7.0.0, les étapes exactes peuvent donc légèrement différer selon la version exacte installée.
Après avoir téléchargé JBoss, extrayez les fichiers quelque part. Dans ce tutoriel, nous utiliserons le dossier D:\JBoss.
Créez ensuite les dossiers suivants :
D:\JBoss\lib
D:\JBoss\conf
D:\JBoss\logs
Installation des fichiers du Wrapper
Après avoir téléchargé le Wrapper, extrayez les fichiers quelque part ; cet emplacement sera référencé comme {WRAPPER_HOME}.
Quatre répertoires doivent être configurés afin de pouvoir utiliser le Wrapper.
répertoire bin
Tout d'abord, copiez les fichiers suivants dans le répertoire bin de JBoss :
Renommez les trois fichiers batch pour qu'ils reflètent le nom de votre application.
Veillez à supprimer les extensions .in afin que tous les fichiers se terminent par .bat.
(Selon la configuration de l'explorateur de fichiers de votre ordinateur, il se peut que vous ne puissiez pas voir les extensions de fichiers.)
Le fichier wrapper.exe est l'exécutable du Wrapper proprement dit.
Les trois fichiers batch servent à exécuter JBoss dans une console, ainsi qu'à l'installer et le désinstaller en tant que service Windows.
Ces fichiers batch ne devraient nécessiter aucune modification.
Ils supposent que le fichier wrapper.conf se
trouvera dans un répertoire conf un niveau au-dessus, ../conf/wrapper.conf.
Si vous souhaitez placer le fichier wrapper.conf
ailleurs, les trois fichiers batch devront être modifiés en conséquence.
répertoire lib
Copiez les deux fichiers suivants dans le répertoire lib de JBoss :
Le fichier wrapper.dll est un fichier de bibliothèque native
requis par la partie du Wrapper qui s'exécute dans la JVM.
Le fichier wrapper.jar contient toutes les classes du Wrapper.
répertoire conf
Le Wrapper nécessite un fichier de configuration « wrapper.conf » pour chaque application.
L'emplacement standard de ce fichier est un répertoire conf dans le répertoire d'accueil de l'application.
Copiez le fichier modèle suivant wrapper.conf.in
dans le répertoire conf de JBoss.
{WRAPPER_HOME}\src\conf\wrapper.conf.in
Renommez le fichier et veillez à supprimer l'extension .in
afin que le fichier s'appelle wrapper.conf.
Vous devriez maintenant avoir :
{JBOSS_HOME}\conf\wrapper.conf
Si vous souhaitez déplacer le fichier de configuration wrapper.conf, vous êtes libre de le faire.
Vous devrez modifier les fichiers batch copiés dans le répertoire bin ci-dessus pour refléter le nouvel emplacement.
répertoire logs
Le fichier de configuration par défaut wrapper.conf placera un
fichier wrapper.log dans le répertoire logs de JBoss.
{JBOSS_HOME}\logs
Si vous souhaitez placer le fichier wrapper.log à un autre emplacement,
vous devrez modifier le fichier wrapper.conf et changer la
propriété wrapper.logfile pour refléter le nouvel emplacement.
La ligne de commande Java
La ligne de commande Java d'un jar exécutable est assez simple.
Dans le cas de JBoss, il suffit d'aller dans le répertoire JBoss et d'exécuter :
java -jar D:\JBoss\jboss-modules.jar
Les arguments éventuels seraient transmis comme suit :
Afin d'utiliser la ligne de commande Java ci-dessus avec le Wrapper, nous devons décomposer les composants de la ligne de commande dans un fichier de configuration.
Ouvrez le fichier wrapper.conf dans un éditeur et apportez les modifications ci-dessous.
NOTE
Pour toutes les propriétés mentionnées ci-dessous, des liens vers leurs descriptions sont fournis.
Veuillez prendre le temps de consulter les descriptions de toutes les propriétés qui sont modifiées.
Dans de nombreux cas, des détails supplémentaires sur leur utilisation ne sont pas mentionnés ici.
Exécutable Java
Tout d'abord, extraire l'exécutable Java et attribuer le chemin d'emplacement à la
propriété wrapper.java.command :
wrapper.java.command=java
Jar du Wrapper
Le Wrapper exige que son wrapper.jar soit spécifié :
wrapper.jarfile=D:\JBoss\lib\wrapper.jar
AVERTISSEMENT
La propriété wrapper.jarfile a été introduite dans la version 3.5.55.
Lors de l'utilisation de versions antérieures du Wrapper, il est nécessaire d'inclure wrapper.jar dans le classpath :
Ensuite, les indices des éléments de classpath suivants doivent être ajustés afin que la propriété wrapper.java.classpath.1 ne soit pas répétée.
Classpath
Vient ensuite le classpath, qui est configuré à l'aide des
propriétés wrapper.java.classpath.<n>.
Java ne permet pas réellement de spécifier un classpath lors de l'exécution avec le paramètre -jar
mais cette intégration avec le Wrapper fonctionne un peu différemment.
Le Wrapper exige que son wrapper.jar soit spécifié dans le classpath :
Lors de l'utilisation du Wrapper et de la classe d'assistance WrapperJarApp, Java n'exécute pas le jar directement.
Il est nécessaire de spécifier la classe d'assistance comme classe principale de l'application.
La classe principale exécutée par Java au lancement est spécifiée à l'aide de la
propriété wrapper.java.mainclass comme suit :
Les paramètres de l'application sont définis à l'aide des
propriétés wrapper.app.parameter.<n>.
Dans ce cas, la ligne de commande pour lancer JBoss nécessite certains paramètres d'application.
Il est nécessaire d'indiquer à la classe d'assistance WrapperJarApp quel jar exécuter.
Cela se fait comme suit :
Les paramètres Java supplémentaires sont définis à l'aide des
propriétés wrapper.java.additional.<n>.
Certains paramètres doivent être définis pour la JVM afin de démarrer JBoss correctement.
Afin d'utiliser le Wrapper, une propriété supplémentaire doit être définie.
Le Wrapper utilise une bibliothèque native pour contrôler les interactions avec le système.
Ce fichier de bibliothèquewrapper.dll doit être spécifié
dans le chemin des bibliothèques fourni à la JVM.
JBoss n'a pas de bibliothèques natives propres, mais s'il en avait, les répertoires où elles se trouvent devraient également être spécifiés.
Le chemin des bibliothèques est défini à l'aide des
propriétés wrapper.java.library.path.<n>.
wrapper.java.library.path.1=D:\JBoss\lib
Mise en commun
En rassemblant le tout, nous obtenons ce qui suit :
Notez que, bien que ces configurations fonctionnent correctement sur notre machine de test,
elles dépendent fortement de la structure des répertoires et de la plateforme.
En tirant parti du fait que le Wrapper définit toujours le répertoire de travail
à l'emplacement du fichier wrapper.exe et en utilisant une seule variable d'environnement,
nous pouvons modifier les propriétés ci-dessus afin qu'elles soient complètement indépendantes de la plateforme et de la machine :
La dernière étape consiste à définir les Propriétés du service Windows.
Nous ne définirons que les propriétés qui doivent être modifiées.
Mais plusieurs autres sont disponibles ; consultez la documentation pour plus de détails sur leur utilisation.
Les valeurs suggérées pour ces variables sont indiquées ci-dessous.
Les propriétés sont définies dans le fichier wrapper.conf
situé dans le dossier conf de l'installation du Wrapper.
Essai
JBoss peut maintenant être exécuté simplement en lançant le fichier batch bin\myJBoss.bat.
En raison de la façon dont le Wrapper définit son répertoire courant,
il n'est pas nécessaire d'exécuter ce fichier batch depuis le répertoire bin.
Veuillez d'abord exécuter l'application une fois en tant qu'application console
afin de vérifier la configuration avant de tenter de l'exécuter en tant que service.
Lors du premier démarrage de JBoss, celui-ci créera ses fichiers de configuration dans le répertoire d'accueil de l'utilisateur courant.
Notez que cet emplacement sera très probablement différent lors de l'exécution en tant que service par rapport à l'exécution dans une fenêtre de console.
Félicitations, votre application devrait maintenant être opérationnelle.
Si vous rencontrez des problèmes, veuillez consulter la section Dépannage pour obtenir de l'aide afin d'identifier le problème.