Pessoal, o meu código está certo, pelo menos é isso que eu acho. RemoveEmpresa, ListaEmpresa funcionam, mas quando tento alterar o nome da empresa não funciona, aparece o erro abaixo:
Type Exception Report
Message Cannot invoke "String.split(String)" because "nome" is null
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
java.lang.NullPointerException: Cannot invoke "String.split(String)" because "nome" is null br.com.alura.gerenciador.servlet.UnicaEntradaServlet.service(UnicaEntradaServlet.java:48) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Note A pilha de erros completa da causa principal está disponível nos logs do servidor.
Apache Tomcat/9.0.45
O erro está nesta neste código: String[] tipoEndereco = nome.split(":");
package br.com.alura.gerenciador.servlet;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.alura.gerenciador.acao.AlteraEmpresa;
import br.com.alura.gerenciador.acao.ListaEmpresas;
import br.com.alura.gerenciador.acao.MostraEmpresa;
import br.com.alura.gerenciador.acao.NovaEmpresa;
import br.com.alura.gerenciador.acao.NovaEmpresaForm;
import br.com.alura.gerenciador.acao.RemoveEmpresa;
@WebServlet("/entrada")
public class UnicaEntradaServlet<Acao> extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String paramAcao = request.getParameter("acao");
String nome = null;
if (paramAcao.equals("ListaEmpresas")) {
ListaEmpresas acao = new ListaEmpresas();
nome = acao.executa(request, response);
} else if (paramAcao.equals("RemoveEmpresa")) {
RemoveEmpresa acao = new RemoveEmpresa();
nome = acao.executa(request, response);
} else if (paramAcao.equals("MostraEmpresa")) {
MostraEmpresa acao = new MostraEmpresa();
nome = acao.executa(request, response);
} else if (paramAcao.equals("MostraEmpresa")) {
AlteraEmpresa acao = new AlteraEmpresa();
nome = acao.executa(request, response);
} else if (paramAcao.equals("NovaEmpresa")) {
NovaEmpresa acao = new NovaEmpresa();
nome = acao.executa(request, response);
} else if (paramAcao.equals("NovaEmpresaForm")) {
NovaEmpresaForm acao = new NovaEmpresaForm();
nome = acao.executa(request, response);
}
String[] tipoEndereco = nome.split(":");
if (tipoEndereco[0].equals("forward")) {
RequestDispatcher rd = request.getRequestDispatcher("WEB-INF/view/" + tipoEndereco[1]);
rd.forward(request, response);
} else {
response.sendRedirect(tipoEndereco[1]);
}
}
}