Instale e configure o Jetty em uma instância ECS para hospedar aplicações web Java em um contêiner de servlet leve.
Pré-requisitos
A instância ECS deve atender aos seguintes condições:
A instância possui um endereço IP público estático ou um Elastic IP Address (EIP).
O grupo de segurança permite acesso de entrada nas portas para conexões remotas e para o Jetty, como as portas 22, 3389 e 8080. Consulte Add a security group rule.
Um ambiente Java está implantado na instância. Consulte Deploy a Java environment.
Procedimento
Escolha o procedimento conforme o sistema operacional da instância ECS.
Linux
Este tópico usa o Jetty 12.0.16 como exemplo. Se utilizar outra versão ou diretório, substitua o número da versão e o caminho adequadamente.
Faça logon no servidor Linux. Consulte Log on to a Linux instance using Workbench.
-
Baixe e descompacte o pacote de instalação do Jetty 12.
ImportantePara instalar uma versão diferente ou caso o link de download esteja inválido, visite o site oficial do Jetty para obter o link correto e substitua a URL.
-
Versões diferentes do Jetty suportam versões distintas do JDK. Verifique o site oficial do Jetty para selecionar uma versão compatível com seu 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 -
Mova o diretório do Jetty.
sudo mv jetty-home-12.0.16 /usr/local/jetty/ -
Crie o diretório
jetty-base.sudo mkdir /usr/local/jetty-base -
Defina as variáveis de ambiente.
-
Edite o arquivo
~/.bashrc.sudo vim ~/.bashrc -
Pressione
ipara entrar no modo de edição e adicione o seguinte conteúdo ao arquivo.NotaDefina
JETTY_HOMEcomo o diretório real de instalação do Jetty eJETTY_BASEcomo o diretóriojetty-base.export JETTY_HOME=/usr/local/jetty export JETTY_BASE=/usr/local/jetty-base Pressione
Esc, insira:wqe pressioneEnterpara salvar e fechar o arquivo.-
Aplique as alterações.
source ~/.bashrc
-
-
Ative os módulos do Jetty e inicialize o diretório
jetty-base.-
Acesse o diretório
jetty-base.cd /usr/local/jetty-base -
Inicialize o diretório
jetty-base. Essa ação cria o diretório$JETTY_BASE/start.d/e outros diretórios que contêm a configuração do servidor.NotaPara visualizar os módulos disponíveis, execute o comando
java -jar $JETTY_HOME/start.jar --list-modules=*.Se usar o Jetty 9, substitua
--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
-
-
Verifique a implantação.
ImportanteExecute os comandos a seguir no diretório
jetty-base.-
Implante a aplicação web de exemplo do Jetty.
Se usar o Jetty 11 ou 10, substitua
demospordemono comando a seguir.Se usar o Jetty 9, execute o comando
sudo mv $JETTY_HOME/demo-base/webapps/ROOT $JETTY_BASE/webappspara implantar o exemplo.
NotaTambém é possível enviar um pacote WAR local para o diretório
$JETTY_BASE/webappspara testes. Consulte Upload or download files.sudo java -jar $JETTY_HOME/start.jar --add-module=demos -
Inicie o Jetty.
NotaPor padrão, o Jetty escuta na porta 8080. Execute
sudo netstat -tunlp | grep 8080para verificar se a porta está em uso. Nesse caso, especifique uma porta diferente:nohup sudo java -jar $JETTY_HOME/start.jar jetty.http.port=8081 &.nohup sudo java -jar $JETTY_HOME/start.jar & -
No navegador, insira
http://<Public IP address>:8080. Se a página de teste aparecer, a implantação foi bem-sucedida.NotaSe alterou a porta do Jetty, substitua 8080 pelo novo número de porta e libere essa porta no grupo de segurança. Consulte Add a security group rule.
Se enviou um pacote WAR local, acesse
http://<Public IP address>:8080/<Package name>para testá-lo.
-
Windows
Esta seção aplica-se apenas ao Jetty 12, Jetty 11 e Jetty 10.
Este tópico usa o Jetty 12.0.16 como exemplo. Se utilizar outra versão ou diretório, substitua o número da versão e o caminho adequadamente.
Faça logon no servidor Windows. Consulte Use Workbench to log on to a Windows instance.
-
Baixe o Jetty.
Versões diferentes do Jetty suportam versões distintas do JDK. Verifique o site oficial do Jetty para selecionar uma versão compatível com seu JDK e baixe o pacote de instalação.

-
Descompacte o pacote do Jetty.
Descompacte o pacote no local de sua preferência. Este tópico usa
C:\downloadcomo exemplo.ImportanteDescompacte o Jetty em um caminho sem espaços.
-
Defina a variável de ambiente
JETTY_HOME.Clique em This PC com o botão direito e selecione Properties.
Na página About, role até a parte inferior e clique em Advanced system settings.
Clique em Environment Variables.
Na seção System variables, clique em New. Defina o nome da variável como
JETTY_HOMEe o valor como o diretório de instalação do Jetty, por exemplo,C:\download\jetty-home-12.0.16. Clique em OK.Clique em OK para salvar a configuração.
Crie uma pasta
jetty-base. Este tópico usaC:\downloadcomo exemplo.-
Inicialize a pasta
jetty-base.Acesse a pasta
jetty-base, insiracmdna barra de endereços e pressioneEnterpara abrir o prompt de comando.-
Inicialize a pasta
jetty-base. Essa ação cria o diretóriostart.de outros diretórios que contêm a configuração do 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
-
Verifique a implantação.
-
Implante a aplicação web de exemplo do Jetty.
Se usar o Jetty 11 ou 10, substitua
demospordemono comando a seguir.NotaTambém é possível enviar um pacote WAR local para o diretório
<jetty-base>/webappspara testes.<jetty-base>é o caminho para a pastajetty-base, por exemplo,C:\download\jetty-base. Consulte Upload or download files.java -jar %JETTY_HOME%/start.jar --add-module=demos -
Inicie o Jetty. Não feche a janela do prompt de comando após iniciar o Jetty.
NotaPor padrão, o Jetty escuta na porta 8080. Execute
netstat -ano | findstr :8080para verificar se a porta está em uso. Nesse caso, especifique uma porta diferente:java -jar %JETTY_HOME%/start.jar jetty.http.port=8081.java -jar %JETTY_HOME%/start.jar -
No navegador, insira
http://<Public IP address>:8080. Se a página de teste aparecer, a implantação foi bem-sucedida.NotaSe alterou a porta do Jetty, substitua 8080 pelo novo número de porta e libere essa porta no grupo de segurança. Consulte Add a security group rule.
Se enviou um pacote WAR local, acesse
http://<Public IP address>:8080/<Package name>para testá-lo.
-
Próximas etapas
-
Configure um site no servidor e associe um nome de domínio ao endereço IP público da instância. Consulte Build a website.
Se a aplicação precisar de banco de dados, adicione as configurações correspondentes aos arquivos de configuração do projeto web, como um arquivo Properties. Após o desenvolvimento, implante o pacote WAR no diretório
$JETTY_BASE/webappse inicie o Jetty para acessar a aplicação. Para mais detalhes, visite o site oficial do Jetty.NotaSe usar uma versão diferente do Jetty, substitua o número da versão na URL.
Para enviar arquivos locais para uma instância ECS, consulte Upload or download files (Linux).
Para usar um banco de dados, utilize o ApsaraDB RDS for MySQL ou deploy a MySQL database na instância.
Utilize o Server Load Balancer (SLB) para melhorar a disponibilidade e o desempenho do site.
Perguntas frequentes
Após a implantação, não consigo acessar http://<Public IP address>:8080 no navegador local
Após implantar o Jetty, talvez não seja possível acessar http://<Public IP address>:8080 pelo navegador. Causas possíveis:
-
Causa 1: Firewall ou SELinux bloqueia o acesso
O firewall do sistema ou o SELinux pode estar bloqueando o acesso externo. Soluções:
Linux: Desative o system firewall e o SELinux.
Windows: Desative o system firewall.
-
Causa 2: Porta personalizada do Jetty
A porta do Jetty foi alterada durante a inicialização.
Substitua 8080 em
http://<Public IP address>:8080pelo novo número de porta e libere essa porta no security group.