Bom dia,
Estou montando uma aplicação para um projeto da faculdade. E agora me deparei com um problema e gostaria de saber se alguém tem alguma sugestão.
Na hora de fazer um cadastro na parte de estoque, o sistema está retornando o seguinte erro:
HTTP Status 500 - null
type Exception report
message null
description The server encountered an internal error that prevented it from fulfilling this request.
exception
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
br.com.odontbasic.controle.instrumentista.estoque.SalvarEstoqueServlet.doPost(SalvarEstoqueServlet.java:29)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
br.com.odontbasic.controle.LoginFilter.doFilter(LoginFilter.java:47)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.36 logs.
Pelo que pude pesquisei, isso está acontecendo por eu estar tentando converter um valor null ou uma string para int. Eu fiz algumas alterações mas o erro persistiu.
Segue o código da Servlet, se alguém tiver alguma sugestão que possa ajudar eu agradeço.
package br.com.odontbasic.controle.instrumentista.estoque;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.odontbasic.modelo.Estoque;
import br.com.odontbasic.modelo.Fornecedor;
import br.com.odontbasic.modelo.Produto;
import br.com.odontbasic.modelo.dao.EstoqueDao;
public class SalvarEstoqueServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dispatcher = null;
Estoque estoque = new Estoque();
List<String> erros = new ArrayList<String>();
String id = request.getParameter("id");
if(id != null && !id.isEmpty()) {
estoque.setIdestoque(Integer.parseInt(id));
}
estoque.setQuantidade(Integer.parseInt(request.getParameter("quantidade")));
estoque.setEstoque(Integer.parseInt(request.getParameter("estoque")));
estoque.setProduto(new Produto(Integer.parseInt("idproduto")));
estoque.setFornecedor(new Fornecedor(Integer.parseInt("idfornecedor")));
if(estoque.getQuantidade()==null) {
erros.add("O campo Quantidade é de preenchimento obrigatório.");
}
if(estoque.getEstoque()==null) {
erros.add("O campo Estoque é de preenchimento obrigatório.");
}
if(estoque.getProduto().getIdProduto()==null) {
erros.add("O campo Produto é de preenchimento obrigatório.");
}
if(estoque.getFornecedor().getIdFornecedor()==null) {
erros.add("O campo Produto é de preenchimento obrigatório.");
}
if(!erros.isEmpty()) {
request.setAttribute("estoqueEditado", estoque);
request.setAttribute("erros", erros);
dispatcher = request.getRequestDispatcher("/dinamico/instrumentista/estoque/editar.jsp");
//Calcula a operação sobre o estoque
String operacao = request.getParameter("operacao");
String quantidade = request.getParameter("quantidade");
if(!quantidade.isEmpty()) {
estoque.setEstoque(Integer.parseInt(request.getParameter( operacao + quantidade)));
}
// Fim do calculo de estoque
} else {
EstoqueDao estoqueDao = new EstoqueDao();
if(estoque.getIdestoque() == null) {//criacao
estoqueDao.criar(estoque);
} else {//atualizacao
estoqueDao.atualizar(estoque);
}
request.setAttribute("mensagem", "Estoque " + estoque.getProduto().getNomeProduto() + " salvo com sucesso.");
request.setAttribute("estoques", estoqueDao.obterTodos());
dispatcher = request.getRequestDispatcher("/dinamico/instrumentista/estoque/listar.jsp");
}
dispatcher.forward(request, response);
}
}