Installez et configurez Jetty sur une instance ECS pour héberger des applications Web Java dans un conteneur de servlets léger.
Prérequis
Votre instance ECS doit remplir les conditions suivantes :
L'instance dispose d'une adresse IP publique statique ou d'une Elastic IP Address (EIP).
Le groupe de sécurité autorise l'accès entrant sur les ports utilisés pour les connexions à distance et pour Jetty, tels que les ports 22, 3389 et 8080. Consultez la rubrique Ajouter une règle de groupe de sécurité.
Un environnement Java est déployé sur l'instance. Consultez la rubrique Déployer un environnement Java.
Procédure
Choisissez la procédure adaptée au système d'exploitation de votre instance ECS.
Linux
Cette rubrique utilise Jetty 12.0.16 à titre d'exemple. Si vous utilisez une version ou un répertoire différent, adaptez le numéro de version et le chemin d'accès en conséquence.
Connectez-vous au serveur Linux. Consultez la rubrique Se connecter à une instance Linux à l'aide de Workbench.
-
Téléchargez et décompressez le package d'installation de Jetty 12.
ImportantPour installer une autre version ou si le lien de téléchargement n'est pas valide, consultez le site officiel de Jetty pour obtenir le lien de téléchargement correct et remplacez l'URL.
-
Les différentes versions de Jetty prennent en charge différentes versions du JDK. Consultez le site officiel de Jetty pour sélectionner une version de Jetty compatible avec votre JDK.

wget https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-home/12.0.16/jetty-home-12.0.16.tar.gz --no-check-certificate tar -zxvf jetty-home-12.0.16.tar.gz -
Déplacez le répertoire Jetty.
sudo mv jetty-home-12.0.16 /usr/local/jetty/ -
Créez le répertoire
jetty-base.sudo mkdir /usr/local/jetty-base -
Définissez les variables d'environnement.
-
Modifiez le fichier
~/.bashrc.sudo vim ~/.bashrc -
Appuyez sur
ipour passer en mode édition et ajoutez le contenu suivant au fichier.RemarqueDéfinissez
JETTY_HOMEsur le répertoire d'installation réel de Jetty etJETTY_BASEsur le répertoirejetty-base.export JETTY_HOME=/usr/local/jetty export JETTY_BASE=/usr/local/jetty-base Appuyez sur
Esc, saisissez:wqpuis appuyez surEnterpour enregistrer et fermer le fichier.-
Appliquez les modifications.
source ~/.bashrc
-
-
Activez les modules Jetty et initialisez le répertoire
jetty-base.-
Accédez au répertoire
jetty-base.cd /usr/local/jetty-base -
Initialisez le répertoire
jetty-base. Cette opération crée le répertoire$JETTY_BASE/start.d/ainsi que d'autres répertoires contenant la configuration du serveur.RemarquePour afficher les modules disponibles, exécutez la commande
java -jar $JETTY_HOME/start.jar --list-modules=*.Si vous utilisez Jetty 9, remplacez
--add-modulepar--add-to-start.
sudo java -jar $JETTY_HOME/start.jar --add-module=server,http,deploy[test@jxxx jetty-base]$ sudo java -jar $JETTY_HOME/start.jar --add-module=server,http,deploy INFO : mkdir ${jetty.base}/start.d INFO : webapp transitively enabled, ini template available with --add-module=webapp INFO : server initialized in ${jetty.base}/start.d/server.ini INFO : logging-jetty transitively enabled INFO : security transitively enabled INFO : servlet transitively enabled INFO : resources transitively enabled INFO : http initialized in ${jetty.base}/start.d/http.ini INFO : threadpool transitively enabled, ini template available with --add-module=threadpool INFO : logging/slf4j transitive provider of logging/slf4j for logging-jetty INFO : logging/slf4j dynamic dependency of logging-jetty INFO : bytebufferpool transitively enabled, ini template available with --add-module=bytebufferpool INFO : deploy initialized in ${jetty.base}/start.d/deploy.ini INFO : mkdir ${jetty.base}/resources INFO : copy ${jetty.home}/modules/logging/jetty/resources/jetty-logging.properties to ${jetty.base}/resources/jetty-logging.properties INFO : mkdir ${jetty.base}/webapps INFO : Base directory was modified
-
-
Vérifiez le déploiement.
ImportantExécutez les commandes suivantes dans le répertoire
jetty-base.-
Déployez l'application Web de démonstration Jetty.
Si vous utilisez Jetty 11 ou 10, remplacez
demospardemodans la commande suivante.Si vous utilisez Jetty 9, exécutez la commande
sudo mv $JETTY_HOME/demo-base/webapps/ROOT $JETTY_BASE/webappspour déployer l'exemple.
RemarqueVous pouvez également envoyer un package WAR local vers le répertoire
$JETTY_BASE/webappspour effectuer des tests. Consultez la rubrique Télécharger ou envoyer des fichiers.sudo java -jar $JETTY_HOME/start.jar --add-module=demos -
Démarrez Jetty.
RemarquePar défaut, Jetty écoute sur le port 8080. Exécutez la commande
sudo netstat -tunlp | grep 8080pour vérifier si le port est utilisé. Le cas échéant, spécifiez un autre port :nohup sudo java -jar $JETTY_HOME/start.jar jetty.http.port=8081 &.nohup sudo java -jar $JETTY_HOME/start.jar & -
Dans votre navigateur, saisissez
http://<Adresse IP publique>:8080. Si la page de test s'affiche, le déploiement a réussi.RemarqueSi vous avez modifié le port Jetty, remplacez 8080 par le nouveau numéro de port et autorisez ce port dans le groupe de sécurité. Consultez la rubrique Ajouter une règle de groupe de sécurité.
Si vous avez envoyé un package WAR local, accédez à
http://<Adresse IP publique>:8080/<Nom du package>pour le tester.
-
Windows
Cette section s'applique uniquement à Jetty 12, Jetty 11 et Jetty 10.
Cette rubrique utilise Jetty 12.0.16 à titre d'exemple. Si vous utilisez une version ou un répertoire différent, adaptez le numéro de version et le chemin d'accès en conséquence.
Connectez-vous au serveur Windows. Consultez la rubrique Utiliser Workbench pour se connecter à une instance Windows.
-
Téléchargez Jetty.
Les différentes versions de Jetty prennent en charge différentes versions du JDK. Consultez le site officiel de Jetty pour sélectionner une version compatible avec votre JDK, puis téléchargez le package d'installation.

-
Décompressez le package Jetty.
Décompressez le package à l'emplacement de votre choix. Cette rubrique utilise
C:\downloadà titre d'exemple.ImportantDécompressez Jetty dans un chemin d'accès ne contenant aucun espace.
-
Définissez la variable d'environnement
JETTY_HOME.Cliquez avec le bouton droit sur This PC et sélectionnez Properties.
Sur la page About, faites défiler jusqu'en bas et cliquez sur Advanced system settings.
Cliquez sur Environment Variables.
Dans la section System variables, cliquez sur New. Définissez le nom de la variable sur
JETTY_HOMEet la valeur sur le répertoire d'installation de Jetty, par exempleC:\download\jetty-home-12.0.16. Cliquez sur OK.Cliquez sur OK pour enregistrer la configuration.
Créez un dossier
jetty-base. Cette rubrique utiliseC:\downloadà titre d'exemple.-
Initialisez le dossier
jetty-base.Accédez au dossier
jetty-base, saisissezcmddans la barre d'adresse et appuyez surEnterpour ouvrir l'invite de commandes.-
Initialisez le dossier
jetty-base. Cette opération crée le répertoirestart.dainsi que d'autres répertoires contenant la configuration du serveur.java -jar %JETTY_HOME%/start.jar --add-module=http,server,deployC:\download\jetty-base>java -jar %JETTY_HOME%/start.jar --add-module=http,server,deploy INFO : mkdir ${jetty.base}\start.d INFO : server initialized in ${jetty.base}\start.d\server.ini INFO : logging-jetty transitively enabled INFO : http initialized in ${jetty.base}\start.d\http.ini INFO : resources transitively enabled INFO : threadpool transitively enabled, ini template available with --add-modules=threadpool INFO : logging/slf4j transitive provider of logging/slf4j for logging-jetty INFO : logging/slf4j dynamic dependency of logging-jetty INFO : bytebufferpool transitively enabled, ini template available with --add-modules=bytebufferpool INFO : deploy initialized in ${jetty.base}\start.d\deploy.ini INFO : mkdir ${jetty.base}\resources INFO : copy ${jetty.home}\modules\logging\jetty\resources\jetty-logging.properties to ${jetty.base}\resources\jetty-logging.properties INFO : mkdir ${jetty.base}\webapps INFO : Base directory was modified
-
Vérifiez le déploiement.
-
Déployez l'application Web de démonstration Jetty.
Si vous utilisez Jetty 11 ou 10, remplacez
demospardemodans la commande suivante.RemarqueVous pouvez également envoyer un package WAR local vers le répertoire
<jetty-base>/webappspour effectuer des tests.<jetty-base>correspond au chemin d'accès au dossierjetty-base, par exempleC:\download\jetty-base. Consultez la rubrique Télécharger ou envoyer des fichiers.java -jar %JETTY_HOME%/start.jar --add-module=demos -
Démarrez Jetty. Ne fermez pas la fenêtre de l'invite de commandes après le démarrage de Jetty.
RemarquePar défaut, Jetty écoute sur le port 8080. Exécutez la commande
netstat -ano | findstr :8080pour vérifier si le port est utilisé. Le cas échéant, spécifiez un autre port :java -jar %JETTY_HOME%/start.jar jetty.http.port=8081.java -jar %JETTY_HOME%/start.jar -
Dans votre navigateur, saisissez
http://<Adresse IP publique>:8080. Si la page de test s'affiche, le déploiement a réussi.RemarqueSi vous avez modifié le port Jetty, remplacez 8080 par le nouveau numéro de port et autorisez ce port dans le groupe de sécurité. Consultez la rubrique Ajouter une règle de groupe de sécurité.
Si vous avez envoyé un package WAR local, accédez à
http://<Adresse IP publique>:8080/<Nom du package>pour le tester.
-
Étapes suivantes
-
Configurez un site Web sur le serveur et associez un nom de domaine à l'adresse IP publique de l'instance. Consultez la rubrique Créer un site Web.
Si votre application nécessite une base de données, ajoutez la configuration de la base de données aux fichiers de configuration de votre projet Web, tels qu'un fichier Properties. Une fois le développement terminé, déployez le package WAR dans le répertoire
$JETTY_BASE/webappset démarrez Jetty pour accéder à votre application. Pour plus de détails, consultez le site officiel de Jetty.RemarqueSi vous utilisez une autre version de Jetty, remplacez le numéro de version dans l'URL.
Pour envoyer des fichiers locaux vers une instance ECS, consultez la rubrique Télécharger ou envoyer des fichiers (Linux).
Pour utiliser une base de données, utilisez ApsaraDB RDS for MySQL ou déployez une base de données MySQL sur votre instance.
Utilisez Server Load Balancer (SLB) pour améliorer la disponibilité et les performances de votre site Web.
FAQ
Après le déploiement, je ne peux pas accéder à http://<Adresse IP publique>:8080 depuis mon navigateur local
Après avoir déployé Jetty, il se peut que vous ne puissiez pas accéder à http://<Adresse IP publique>:8080 depuis votre navigateur. Causes possibles :
-
Cause 1 : Le pare-feu ou SELinux bloque l'accès
Le pare-feu système ou SELinux peut bloquer l'accès externe. Solutions :
Linux : Désactivez le pare-feu système et SELinux.
Windows : Désactivez le pare-feu système.
-
Cause 2 : Port Jetty personnalisé
Vous avez modifié le port Jetty au démarrage.
Remplacez 8080 dans
http://<Adresse IP publique>:8080par le nouveau numéro de port et autorisez ce port dans le groupe de sécurité.