Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Estou com dúvida no curso de Servlet 3 e Fundamentos Web, no exercício do capítulo Um padrão de controle.

Não funciona - HTTP Status 500 - java.lang.ClassNotFoundException: br.com.alura.gerenciador.web.novaEmpresa

Classe faztudo
    package br.com.alura.gerenciador.web;

    import java.io.IOException;

    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    @WebServlet(urlPatterns = "/fazTudo")
    public class FazTudo extends HttpServlet {

        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {

            String tarefa = req.getParameter("tarefa");
            if (tarefa == null)
                throw new IllegalArgumentException(
                        "Você esqueceu de passar a tarefa");

            try {
                String nomeDaClasse = "br.com.alura.gerenciador.web." + tarefa;
                Class type = Class.forName(nomeDaClasse);
                Tarefa instancia = (Tarefa) type.newInstance();
                String pagina = instancia.executa(req, resp);
                req.getRequestDispatcher(pagina).forward(req, resp);
            } catch (Exception e) {
                throw new ServletException(e);
            }
        }

    }
novaEmpresa
package br.com.alura.gerenciador.web;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.alura.gerenciador.Empresa;
import br.com.alura.gerenciador.dao.EmpresaDAO;

@WebServlet(urlPatterns = "/novaEmpresa")
public class NovaEmpresa implements Tarefa{
    @Override
    public String executa(HttpServletRequest req, HttpServletResponse resp)
            throws javax.servlet.ServletException, java.io.IOException{

        String nome = req.getParameter("nome");
        Empresa empresa = new Empresa(nome);
        new EmpresaDAO().adiciona(empresa);
        req.setAttribute("nome", nome);
        return "/WEB-INF/paginas/novaEmpresa.jsp";

    }
}
2 respostas

java.lang.ClassNotFoundException: br.com.alura.gerenciador.web.novaEmpresa

solução!

Encontrei o problema: No index.jsp o action estava errado

com n minusculo e na realidade o correto é , o "fazTudo" não conseguia achar a classe, copiei do enunciado do exercício. Acho que o instrutor deveria se atentar a este detalhe o corrigi-lo, pois se mais alguém pegar aquela linha de código possivelmente irá cometer o mesmo erro.