Seguinte antes de dar o “parseInt” verifica se o objeto esta nulo.
Caso não resolva post seu codigo aqui para analisarmos melhor.
R
rmendes08
Dentro do seu servlet você passa um nulo para o método parseInt. É isso.
sugestão: pratique a leitura de stacktrace.
F
felipealves.gnu
Oliveira.caio:
Opa amigo.
Seguinte antes de dar o “parseInt” verifica se o objeto esta nulo.
Caso não resolva post seu codigo aqui para analisarmos melhor.
Olá amigo, segue a servlet principal q eu chamo as outras…
packagemeupacote.web;importjava.io.IOException;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.RequestDispatcher;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importmeupacote.Titulo;importmeupacote.dao.*;publicclassLocadoraServletextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;publicLocadoraServlet(){super();}protectedvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringcmd=request.getParameter("cmd");if(cmd==null)cmd="principal";InterfaceLocadoraDAOdao;Titulotitulo=newTitulo();if(cmd!=null||!cmd.equalsIgnoreCase("principal")){titulo.setNome(request.getParameter("nome"));Stringisbn=request.getParameter("isbn");if(isbn==null)isbn="1";titulo.setIsbn(isbn);Stringtipo=request.getParameter("tipo");titulo.setTipo(Integer.parseInt(tipo));titulo.setGenero(request.getParameter("genero"));}try{dao=(InterfaceLocadoraDAO)newLocadoraDAO();RequestDispatcherrd=null;if(cmd.equalsIgnoreCase("listar")){ListtitulosList=dao.todosTitulos();request.setAttribute("titulosList",titulosList);rd=request.getRequestDispatcher("/mostrarTitulosCads.jsp");}elseif(cmd.equalsIgnoreCase("addliv")){dao.salvar(titulo);rd=request.getRequestDispatcher("LocadoraServlet?cmd=listar");}elseif(cmd.equalsIgnoreCase("exc")){dao.excluir(titulo);rd=request.getRequestDispatcher("LocadoraServlet?cmd=listar");}elseif(cmd.equalsIgnoreCase("atu")){titulo=dao.procurarTitulo(titulo.getNome());HttpSessionsession=request.getSession(true);session.setAttribute("titulo",titulo);rd=request.getRequestDispatcher("/formAtuTitulo.jsp");}elseif(cmd.equalsIgnoreCase("atualizar")){dao.atualizar(titulo);rd=request.getRequestDispatcher("LocadoraServlet?cmd=listar");}elseif(cmd.equalsIgnoreCase("principal")){rd=request.getRequestDispatcher("/index.jsp");}rd.forward(request,response);}catch(Exceptione){e.printStackTrace();thrownewServletException(e);}}protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{// TODO Auto-generated method stub}protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{// TODO Auto-generated method stub}}
Dentro do seu servlet você passa um nulo para o método parseInt. É isso.
sugestão: pratique a leitura de stacktrace.
Amigo aonde encontro um tutorial ou link para praticar a leitura de stacktrance???
A
a.moraissoares
Opa amigo. É preciso você verificar antes o que o rmendes08 e o Oliveira.caio disseram.
Observe o erro:
# java.lang.NumberFormatException: null
# at java.lang.Integer.parseInt(Integer.java:454)
# at java.lang.Integer.parseInt(Integer.java:527)
Está falando que deu erro de NumberFormatException, ou seja, não foi possível converter para o tipo INT, ou pra um formato de número, pois o campo está nulo, ou não pode ser convertido em número(INT): java.lang.NumberFormatException: null
Nessa parte do código:
# String tipo = request.getParameter("tipo");
# titulo.setTipo(Integer.parseInt(tipo));
No request.getParameter("tipo"), não existe o parâmetro "tipo", ou ela não pode ser convertida em INT por se tratar de uma String lliteral. Testa antes o que está chegando no parâmetro "tipo", depois volta a postar.
Valeu, e boa sorte.
R
rmendes08
Provavelmente o erro tá nesse trecho:
String tipo = request.getParameter("tipo");
titulo.setTipo(Integer.parseInt(tipo));
Um teste de nulo antes do parse resolve o seu problema.
Para ler uma stacktrace antes de mais nada você tem que entender como funcionam exceções e pilha de chamadas à métodos. Conhecendo isso é usá-las para procurar os erros.
P
Paulo_Silveira
ola felipe, na linha 39 da sua servlet (como diz a stacktrace: LocadoraServlet.java:39) voce esta tentando transformar uma String em int atraves do Integer.parseInt, porem a String que voce esta passando para esse método é null!
Chuto que voce esta pegando essa string de request.getParameter… ele retorna null quando o parametro nao foi passado via http (se for get, deve estar faltando o LocadoraSevlet?variavel=100)
F
felipealves.gnu
Paulo Silveira:
ola felipe, na linha 39 da sua servlet (como diz a stacktrace: LocadoraServlet.java:39) voce esta tentando transformar uma String em int atraves do Integer.parseInt, porem a String que voce esta passando para esse método é null!
Chuto que voce esta pegando essa string de request.getParameter… ele retorna null quando o parametro nao foi passado via http (se for get, deve estar faltando o LocadoraSevlet?variavel=100)
Olá Paulo, obrigado, pela iluminação, mas estou apreendendo aos poucos a ler aquela pilha de erros!!
estou com mais uma dúvida.
está aparecendo outro erro 500 no servidor.
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: meupacote.dao.LocadoraDAO cannot be cast to meupacote.dao.InterfaceLocadoraDAO
meupacote.web.LocadoraServlet.service(LocadoraServlet.java:75)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
root cause
java.lang.ClassCastException: meupacote.dao.LocadoraDAO cannot be cast to meupacote.dao.InterfaceLocadoraDAO
meupacote.web.LocadoraServlet.service(LocadoraServlet.java:45)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.27 logs.