2
respostas

Paginas em branco

Olá O meu código esta exatamente igual ao do professor, porém quando eu faço a ação aparece o erro 500 em uma das classes, segue o erro na classe "removeEmpresa".

Type Exception Report

Message null

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

java.lang.NumberFormatException: null
    java.base/java.lang.Integer.parseInt(Integer.java:614)
    java.base/java.lang.Integer.valueOf(Integer.java:983)
    br.com.alura.gerenciadorr.acao.RemoveEmpresa.executa(RemoveEmpresa.java:15)
    br.com.alura.gerenciadorr.servelet.UnicaEntradaServlet.service(UnicaEntradaServlet.java:31)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Note The full stack trace of the root cause is available in the server logs.

A classe "MostraEmpresa" não faz o que deveria e fica em branco.

package br.com.alura.gerenciadorr.acao;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.alura.gerenciador.modelo.Banco;
import br.com.alura.gerenciador.modelo.Empresa;

public class MostraEmpresa {

    public void executa(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // exceção 
        System.out.println("Mostrando dados da empresa");

        String paramId = request.getParameter("id");
        Integer id = Integer.valueOf(paramId);

        Banco banco = new Banco();

        Empresa empresa = banco.buscaEmpresa(id);
        System.out.println(empresa.getNome());

        request.setAttribute("empresa", empresa);//Apelido para o jsp
        RequestDispatcher rd = request.getRequestDispatcher("/formAlteraEmpresa.jsp");
        rd.forward(request, response);

    }

}

Remove empresa

package br.com.alura.gerenciadorr.acao;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.alura.gerenciador.modelo.Banco;

public class RemoveEmpresa {

    public void executa(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // exceção 
        System.out.println("Removendo empresa");

        String paramID = request.getParameter("id");
        Integer id = Integer.valueOf(paramID);

        Banco banco = new Banco();
        banco.removeId(id);

        response.sendRedirect("listaEmpresas");

    }

}

Unica entrada servlet

package br.com.alura.gerenciadorr.servelet;

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;

import br.com.alura.gerenciadorr.acao.ListaEmpresas;
import br.com.alura.gerenciadorr.acao.MostraEmpresa;
import br.com.alura.gerenciadorr.acao.RemoveEmpresa;

@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");

        if (paramAcao.equals("listaEmpresas")) {

            ListaEmpresas acao = new ListaEmpresas();
            acao.executa(request, response);

        }
        else if(paramAcao.equals("removeEmpresa")) {

            RemoveEmpresa remove = new RemoveEmpresa();
            remove.executa(request, response);

        }
        else if(paramAcao.equals("mostraEmpresaServlet")) {

            MostraEmpresa mostra = new MostraEmpresa();
            mostra.executa(request, response);
        }
    }
}

lista empresa jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ page import = "java.util.List" %>
<%@ page import = "br.com.alura.gerenciador.modelo.Empresa"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/fmt" prefix = "fmt"%>

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    Lista de empresas<br/>

    <c:if test="${not empty empresa}">
        Empresa ${ empresa } cadastrada com sucesso!
    </c:if>

    <ul>
        <c:forEach items="${ empresas }" var="empresa"> 

            <li>
                ${empresa.nome} <fmt:formatDate value="${empresa.dataAbertura }" pattern="dd/MM/yyyy"/>
                <a href="/gerenciadorr/entrada?acao=mostraEmpresa&id=${empresa.id}"  > Edit </a>
                <a href="/gerenciadorr/entrada?acao=removeEmpresa&id${empresa.id}"  > Remove </a>
            </li>
        </c:forEach>
    </ul>

</body>
</html>
2 respostas

Oi Sandro, tudo bem?

<a href="/gerenciadorr/entrada?acao=removeEmpresa&id${empresa.id}"  > Remove </a>

seu link acima está errado, o correto seria:

<a href="/gerenciador/entrada?acao=RemoveEmpresa&id=${empresa.id }">remove</a>

faltou um = depois do id

Otávio o meu projeto se chama "gerenciadorr" mesmo, pois eu tinha escrito errado, coloquei o "=" que faltava e mesmo assim o erro permanece. Ele não executas as ações que é para fazer, no caso remover e editar.