1
resposta

Erro ao tentar rodar no jetty (Error 503, javax error?)

Olá!

Ao seguir os últimos passos do curso para exportar para rodar no Jetty, mas lá recebi o seguinte erro:

HTTP ERROR 503
Problem accessing /gerenciador/entrada. Reason:

    Service Unavailable

Mas no console o problema começa antes, aparece:

java.lang.NoClassDefFoundError: javax/servlet/http/HttpFilter

e

java.lang.ClassNotFoundException: javax.servlet.http.HttpFilter

Acredito ser uma compatibilidade de versões, visto que pelo jeito o javax não roda em alguns Java (não entendi isso direito, por isso pergunto também), mas não sei como resolver.

meu java -version:

openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment Microsoft-25199 (build 11.0.12+7)
OpenJDK 64-Bit Server VM Microsoft-25199 (build 11.0.12+7, mixed mode)

Aqui o Build Path no eclipse, onde fiz:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O que eu preciso mudar para que rode a aplicação no Jetty tal como nas aulas?

Obrigado.

1 resposta

Olá Yago, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

A mensagem de status HTTP 503 indica que o servidor não está disponível para acesso. Este comportamento pode estar acontecendo devido a não declaração dos métodos init e destroy nas classes que implementam Filter, gerando assim o levantamento dos erros java.lang.NoClassDefFoundError: javax/servlet/http/HttpFilter e java.lang.ClassNotFoundException: javax.servlet.http.HttpFilter. A declaração destes métodos é obrigatória quando trabalhamos com o Jetty.

Peço que no seu projeto, nas classes dos arquivos AutorizacaoFilter.java, ControladorFilter.java e MonitoramentoFilter.java, verifique se a declaração dos métodos init e destroy foi realizada, caso não tenha sido feita, basta copiar o código abaixo e colar no seu projeto:

@Override
public void init(FilterConfig filterConfig) throws ServletException {}

@Override
public void destroy() {}

Após realizar essa modificação, salve os arquivos.

Importante: será necessário realizar uma nova importação do projeto para o Jetty com as novas modificações. Você pode acompanhar os passos necessários seguindo a aula Servlet Container Jetty a partir do minuto 5:40.

Após realizar a importação, basta iniciar o servidor executando o comando java -jar start.jar no terminal aberto na pasta principal do Jetty. Após isso, basta acessar a aplicação.

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!