Instale y configure Jetty en una instancia ECS para alojar aplicaciones web Java en un contenedor de servlets ligero.
Requisitos previos
Su instancia ECS debe cumplir con las siguientes condiciones:
La instancia cuenta con una dirección IP pública estática o una Elastic IP Address (EIP).
El security group permite el acceso entrante en los puertos necesarios para conexiones remotas y Jetty, como los puertos 22, 3389 y 8080. Consulte Add a security group rule.
Se ha desplegado un entorno Java en la instancia. Consulte Deploy a Java environment.
Procedimiento
Elija un procedimiento según el sistema operativo de su instancia ECS.
Linux
Este tema utiliza Jetty 12.0.16 como ejemplo. Si usa una versión o directorio diferente, reemplace el número de versión y la ruta en consecuencia.
Inicie sesión en el servidor Linux. Consulte Log on to a Linux instance using Workbench.
-
Descargue y descomprima el paquete de instalación de Jetty 12.
ImportantePara instalar una versión diferente o si el enlace de descarga no es válido, visite el sitio web oficial de Jetty para obtener el enlace correcto y reemplace la URL.
-
Las distintas versiones de Jetty admiten diferentes versiones de JDK. Revise el sitio web oficial de Jetty para seleccionar una versión de Jetty compatible con su 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 -
Mueva el directorio de Jetty.
sudo mv jetty-home-12.0.16 /usr/local/jetty/ -
Cree el directorio
jetty-base.sudo mkdir /usr/local/jetty-base -
Establezca las variables de entorno.
-
Edite el archivo
~/.bashrc.sudo vim ~/.bashrc -
Presione
ipara entrar al modo de edición y agregue el siguiente contenido al archivo.NotaEstablezca
JETTY_HOMEen el directorio real de instalación de Jetty yJETTY_BASEen el directoriojetty-base.export JETTY_HOME=/usr/local/jetty export JETTY_BASE=/usr/local/jetty-base Presione
Esc, introduzca:wqy presioneEnterpara guardar y cerrar el archivo.-
Aplique los cambios.
source ~/.bashrc
-
-
Habilite los módulos de Jetty e inicialice el directorio
jetty-base.-
Vaya al directorio
jetty-base.cd /usr/local/jetty-base -
Inicialice el directorio
jetty-base. Esto crea el directorio$JETTY_BASE/start.d/y otros directorios que contienen la configuración del servidor.NotaPara ver los módulos disponibles, ejecute el comando
java -jar $JETTY_HOME/start.jar --list-modules=*.Si utiliza Jetty 9, reemplace
--add-modulepor--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
-
-
Compruebe el despliegue.
ImportanteEjecute los siguientes comandos en el directorio
jetty-base.-
Despliegue la aplicación web de ejemplo de Jetty.
Si utiliza Jetty 11 o 10, reemplace
demospordemoen el siguiente comando.Si utiliza Jetty 9, ejecute el comando
sudo mv $JETTY_HOME/demo-base/webapps/ROOT $JETTY_BASE/webappspara desplegar el ejemplo.
NotaTambién puede cargar un paquete WAR local en el directorio
$JETTY_BASE/webappspara realizar pruebas. Consulte Upload or download files.sudo java -jar $JETTY_HOME/start.jar --add-module=demos -
Inicie Jetty.
NotaDe forma predeterminada, Jetty escucha en el puerto 8080. Ejecute
sudo netstat -tunlp | grep 8080para comprobar si el puerto está en uso. De ser así, especifique un puerto diferente:nohup sudo java -jar $JETTY_HOME/start.jar jetty.http.port=8081 &.nohup sudo java -jar $JETTY_HOME/start.jar & -
En su navegador, introduzca
http://<Public IP address>:8080. Si aparece la página de prueba, el despliegue se realizó correctamente.NotaSi cambió el puerto de Jetty, reemplace 8080 por el nuevo número de puerto y permita el nuevo puerto en el security group. Consulte Add a security group rule.
Si cargó un paquete WAR local, acceda a
http://<Public IP address>:8080/<Package name>para probarlo.
-
Windows
Esta sección aplica únicamente a Jetty 12, Jetty 11 y Jetty 10.
Este tema utiliza Jetty 12.0.16 como ejemplo. Si usa una versión o directorio diferente, reemplace el número de versión y la ruta en consecuencia.
Inicie sesión en el servidor Windows. Consulte Use Workbench to log on to a Windows instance.
-
Descargue Jetty.
Las distintas versiones de Jetty admiten diferentes versiones de JDK. Revise el sitio web oficial de Jetty para seleccionar una versión compatible con su JDK y luego descargue el paquete de instalación.

-
Descomprima el paquete de Jetty.
Descomprima el paquete en la ubicación que prefiera. Este tema utiliza
C:\downloadcomo ejemplo.ImportanteDescomprima Jetty en una ruta sin espacios.
-
Establezca la variable de entorno
JETTY_HOME.Haga clic derecho en This PC y seleccione Properties.
En la página About, desplácese hasta la parte inferior y haga clic en Advanced system settings.
Haga clic en Environment Variables.
En la sección System variables, haga clic en New. Establezca el nombre de la variable como
JETTY_HOMEy el valor como el directorio de instalación de Jetty, por ejemploC:\download\jetty-home-12.0.16. Haga clic en OK.Haga clic en OK para guardar la configuración.
Cree una carpeta
jetty-base. Este tema utilizaC:\downloadcomo ejemplo.-
Inicialice la carpeta
jetty-base.Vaya a la carpeta
jetty-base, introduzcacmden la barra de direcciones y presioneEnterpara abrir el símbolo del sistema.-
Inicialice la carpeta
jetty-base. Esto crea el directoriostart.dy otros directorios que contienen la configuración del servidor.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
-
Compruebe el despliegue.
-
Despliegue la aplicación web de ejemplo de Jetty.
Si utiliza Jetty 11 o 10, reemplace
demospordemoen el siguiente comando.NotaTambién puede cargar un paquete WAR local en el directorio
<jetty-base>/webappspara realizar pruebas.<jetty-base>es la ruta a la carpetajetty-base<!--/@code--, por ejemplo</p>C:\download\jetty-base. Consulte Upload or download files.java -jar %JETTY_HOME%/start.jar --add-module=demos -
Inicie Jetty. No cierre la ventana del símbolo del sistema después de que Jetty se inicie.
NotaDe forma predeterminada, Jetty escucha en el puerto 8080. Ejecute
netstat -ano | findstr :8080para comprobar si el puerto está en uso. De ser así, especifique un puerto diferente:java -jar %JETTY_HOME%/start.jar jetty.http.port=8081.java -jar %JETTY_HOME%/start.jar -
En su navegador, introduzca
http://<Public IP address>:8080. Si aparece la página de prueba, el despliegue se realizó correctamente.NotaSi cambió el puerto de Jetty, reemplace 8080 por el nuevo número de puerto y permita el nuevo puerto en el security group. Consulte Add a security group rule.
Si cargó un paquete WAR local, acceda a
http://<Public IP address>:8080/<Package name>para probarlo.
-
Siguientes pasos
-
Configure un sitio web en el servidor y asocie un nombre de dominio con la dirección IP pública de la instancia. Consulte Build a website.
Si su aplicación requiere una base de datos, agregue la configuración de la base de datos a los archivos de configuración de su proyecto web, como un archivo Properties. Después del desarrollo, despliegue el paquete WAR en el directorio
$JETTY_BASE/webappse inicie Jetty para acceder a su aplicación. Para más detalles, visite el sitio web oficial de Jetty.NotaSi utiliza una versión diferente de Jetty, reemplace el número de versión en la URL.
Para cargar archivos locales en una instancia ECS, consulte Upload or download files (Linux).
Para usar una base de datos, utilice ApsaraDB RDS for MySQL o deploy a MySQL database en su instancia.
Utilice Server Load Balancer (SLB) para mejorar la disponibilidad y el rendimiento de su sitio web.
Preguntas frecuentes
Después del despliegue, no puedo acceder a http://<Public IP address>:8080 desde mi navegador local
Después de desplegar Jetty, es posible que no pueda acceder a http://<Public IP address>:8080 desde su navegador. Causas posibles:
-
Causa 1: El firewall o SELinux bloquea el acceso
El firewall del sistema o SELinux podrían bloquear el acceso externo. Soluciones:
Linux: Deshabilite system firewall y SELinux.
Windows: Deshabilite system firewall.
-
Causa 2: Puerto personalizado de Jetty
Cambió el puerto de Jetty durante el inicio.
Reemplace 8080 en
http://<Public IP address>:8080por el nuevo número de puerto y permita el nuevo puerto en security group.