1
resposta

Erro 500

@WebServlet("/entrada") public class UnicaEntradaServlet extends HttpServlet { private static final long serialVersionUID = 1L;

protected void service(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {

    String paramAcao = request.getParameter("acao");

    HttpSession sessao = request.getSession();
    boolean usuarioNaoEstaLogado = 
        (sessao.getAttribute("usuarioLogado") == null);
    boolean ehUmaAcaoProtegida = 
        !(paramAcao.equals("Login") || paramAcao.equals("LoginForm"));

    if(ehUmaAcaoProtegida && usuarioNaoEstaLogado) {
        response.sendRedirect("entrada?acao=LoginForm");
        return;
    }

    String nomeDaClasse = "br.com.alura.gerenciador.acao." + paramAcao;

    String nome;
    try {
        Class classe = Class.forName(nomeDaClasse);
        Acao acao = (Acao) classe.newInstance();
        nome = acao.executa(request,response);
    } catch (ClassNotFoundException | 
            InstantiationException | 
            IllegalAccessException e) {
        throw new ServletException(e);
    }

    String[] tipoEEndereco = nome.split(":");
    if(tipoEEndereco[0].equals("forward")) {
        RequestDispatcher rd = 
            request.getRequestDispatcher("WEB-INF/view/" + tipoEEndereco[1]);
        rd.forward(request, response);
    } else {
        response.sendRedirect(tipoEEndereco[1]);
    }

}

}

Boa Noite! Assim está minha classe UnicaEntradaServlet. Me devolve com erro 500

1 resposta

Boa noite Carlos, tudo bem contigo?

Acredito que o que esteja causando seu erro é o fato da variável nome não ter sido inicializada, por isso basta fazer o seguinte:

String nomeDaClasse = "br.com.alura.gerenciador.acao." + paramAcao;

    String nome = ""; // é só inicializar dessa forma aqui

   try {
        Class classe = Class.forName(nomeDaClasse);
        Acao acao = (Acao) classe.newInstance();
        nome = acao.executa(request,response);
    } catch (ClassNotFoundException | 
            InstantiationException | 
            IllegalAccessException e) {
        throw new ServletException(e);
    }

Espero ter ajudado!

Qualquer outro problema estarei por aqui :)

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software