Sur les systèmes Windows, les applications Java s'exécutent dans une invite de commandes. Cela nécessite qu'un compte utilisateur soit connecté au système en permanence, et qu'une invite de commandes soit ouverte et en cours d'exécution sur le bureau.
Cela présente plusieurs inconvénients, allant de la sécurité aux performances du système, jusqu'au simple risque qu'un utilisateur appuie sur la mauvaise touche dans l'invite de commandes et tue l'application Java.
- Qu'est-ce qu'un service ?
- Classe Java HelloWorldServer simple
- Encapsulation de la classe HelloWorldServer
- Exécution de HelloWorldServer dans une console
- Simuler un plantage
- Exécution de HelloWorldServer en tant que service
Qu'est-ce qu'un service ? |
|
Windows a la capacité d'exécuter des applications en arrière-plan en tant que service afin de résoudre ces problèmes. Les services sont lancés au démarrage du système et ne nécessitent pas qu'un utilisateur soit connecté. Cela augmente considérablement la sécurité et la stabilité globale du système, car il n'est pas possible pour un utilisateur de les arrêter, de les démarrer ou de les altérer d'une quelconque manière, sauf s'il est administrateur. Le problème est que Java, à lui seul, ne peut pas s'exécuter en tant que service. De nombreux outils simples comme la commande sc de Windows peuvent être utilisés pour exécuter Java en tant que service, mais le simple fait qu'un utilisateur se déconnecte de la machine entraînera l'arrêt de Java. Le Java Service Wrapper non seulement rend cela possible, mais facilite également l'exécution de n'importe quelle application Java en tant que service Windows. Il ajoute également des fonctionnalités de basculement avancé, de récupération d'erreurs et d'analyse afin de garantir à votre application le temps de fonctionnement maximal possible. |
Classe Java HelloWorldServer simple |
||||||||||||||||||||||||
|
Pour cet exemple, nous utiliserons une application HelloWorldServer simple qui nous permettra de l'exécuter en arrière-plan et de nous y connecter depuis un client à l'aide de telnet. Veuillez consulter la présentation complète de l'application pour apprendre à créer et à compiler l'application HelloWorldServer pour cet exemple. À moins que vous ne souhaitiez réellement exécuter l'exemple, il suffit de dire qu'il peut être lancé à l'aide de la ligne de commande Java suivante.
|
Exécution de HelloWorldServer dans une console |
||||
|
Le Wrapper est maintenant configuré. Commençons à tester notre configuration en exécutant le Wrapper dans une invite de commandes Windows. Veuillez ouvrir une nouvelle invite de commandes et vous placer dans notre répertoire %EXAMPLE_HOME% avec la commande cd. Le Wrapper et notre application encapsulée peuvent maintenant être démarrés comme suit :
Notez que l'emplacement du fichier de configuration est relatif à l'emplacement du binaire Wrapper. Cela est un peu contre-intuitif, mais cela augmente considérablement la fiabilité du Wrapper lorsqu'il est lancé par différentes méthodes. Lorsque le Wrapper démarre, vous devriez voir quelque chose comme ceci :
La bannière en haut du journal apparaît parce que nous utilisons une licence d'essai temporaire. Elle vous indique où vous pouvez obtenir une licence d'essai à long terme ou acheter une licence plus tard.
La ligne qui commence par « Command: » est un message de débogage ; elle affiche la ligne de commande Java exacte que le Wrapper exécute pour démarrer la JVM.
Elle est très utile pour résoudre les problèmes.
Une fois que cela fonctionne, veuillez commenter la
propriété wrapper. Si vous avez acheté une licence, voici ce que vous verriez :
Vous pouvez arrêter votre application à tout moment en appuyant sur CTRL-C. Le Wrapper conserve toujours une trace de la raison pour laquelle une application a été arrêtée ; vous verrez donc quelque chose comme ce qui suit dans votre journal.
|
Simuler un plantage |
|
|
Voyons maintenant un exemple très simple de la façon dont le Wrapper est capable de se rétablir après un certain nombre de pannes. Veuillez redémarrer le Wrapper. Ensuite, ouvrez le Gestionnaire des tâches Windows. Cela peut se faire en appuyant sur CTRL-ALT-DEL. Affichez l'onglet Processus et localisez le processus java.exe. Sélectionnez-le et cliquez sur Terminer le processus. Cela indiquera à Windows de tuer immédiatement le processus Java sans lui donner la possibilité de s'arrêter proprement. Lorsque le processus Java meurt, vous verrez quelque chose comme ce qui suit dans le journal du Wrapper. Remarquez comment le Wrapper détecte que la JVM est morte et lance un remplacement en quelques secondes.
Le fichier journal conserve le nombre de fois que la JVM a été redémarrée. C'est très utile pour les administrateurs système, car ils peuvent facilement voir s'il y a eu des problèmes simplement en regardant la fin du fichier. |
Référence : Lancement de votre application avec le Wrapper |
|
[Windows]
[Linux / Unix]
[Commun] |