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

Erro ao remover empresa.

Ja quebrei a cabeça, mas não consigo achar o erro, meu código está exatamente igual ao do professor Nico, segue o código:

Além disso minhas duas empresas estão com o id totalmente errados, eu consigo clicar no link de remoção da primeira empresa, porém o id dela está como 2, em vez de 1 igual ao do professor. e o Erro explode na segunda empresa e o id fica vazio na url desta empresa.

RemoveEmpresaServlet:

public class RemoveEmpresaServlet extends HttpServlet { private static final long serialVersionUID = 1L;

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

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

    System.out.println(id);

Banco:

private static List lista = new ArrayList(); private static Integer chaveSequencial = 1;

static {
    Empresa empresa = new Empresa();
    empresa.setId(chaveSequencial++);
    empresa.setNome("Alura");
    Empresa empresa2 = new Empresa();
    empresa.setId(chaveSequencial++);
    empresa2.setNome("Caelum");
    lista.add(empresa);
    lista.add(empresa2);
}

Empresa:

private Integer id; private String nome; private Date dataAbertura = new Date();

public Integer getId() {
    return id;
}
public void setId(Integer id) {
    this.id = id;

Erro que dá:

Type Exception Report

Message For input string: ""

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

Exception

java.lang.NumberFormatException: For input string: "" java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) java.base/java.lang.Integer.parseInt(Integer.java:662) java.base/java.lang.Integer.valueOf(Integer.java:983) br.com.alura.gerenciador.servlet.RemoveEmpresaServlet.doGet(RemoveEmpresaServlet.java:17) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 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.

2 respostas
solução!

Olá Kennedy, tudo bem com você?

Provavelmente o problema está dando na hora de você criar o bloco estático na classe Banco.java, veja:

    empresa.setId(chaveSequencial++);
    empresa.setNome("Alura");
    Empresa empresa2 = new Empresa();
    empresa.setId(chaveSequencial++);

Você não está atribuindo nenhum id para a empresa 2, além disso está incrementando o valor do idda empresa 1, por isso o problema da primeira aparecer com o id=2 e o segundo estar vazio :)

Basta trocar para:

    empresa2.setId(chaveSequencial++);

Abraços e Bons Estudos!

Putz... quebrei a cabeça e não vi que era apenas isso, muito obrigado irmão! solucionou meu problema.

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