leoramos 28 de jun. de 2011
Então, cara… posta teu código aqui, com query e tudo.
Mas o NumberFormatException já dá uma dica: pelo nome do teu Servlet, provavelmente tu tá passando o id (que é um número) no formato errado.
Posta aí que a gente mata a charada!
Joe_AM 28 de jun. de 2011
Certeza que você está fazendo um Integer.parseInt(null) -> converter um valor para inteiro sem checar se este é nulo.
alvarofederal 29 de jun. de 2011
Estou enviando meu código:
protected void doGet ( HttpServletRequest request ,
HttpServletResponse response ) throws ServletException , IOException {
Contratos contrato = new Contratos ();
contrato . setiCodigo ( Integer . parseInt ( request . getParameter ( "iCodigo" )));
ContratosDao ad = new ContratosDao ();
if ( ad . excluir ( contrato ) > 0 ){
List < Contratos > lista = new ArrayList < Contratos > ();
lista = ad . listar ();
request . getSession ( true ). setAttribute ( "lista" , lista );
response . sendRedirect ( "listaContrato.jsp" );
} else {
response . sendRedirect ( "erro.html" );
}
}
Espero que possam me ajudar.
Como faço pra informar que não é null.
drsmachado 29 de jun. de 2011
alvarofederal 29 de jun. de 2011
Valeu!
Mas preciso mesmo de uma ajuda nesse código ai!
vou arruma-lo, e se puder me dar uma mão!!!
drsmachado 29 de jun. de 2011
alvarofederal:
Valeu!
Mas preciso mesmo de uma ajuda nesse código ai!
vou arruma-lo, e se puder me dar uma mão!!!
Corrige conforme regras do fórum e depois vejo se posso ajudar.
alvarofederal 29 de jun. de 2011
Quando dá erro, ele dá uma erro de excessão:
Aqui esta o erro:
GRAVE : Servlet . service () for servlet ServletExcluiContrato threw exception
java . lang . NullPointerException
at servlet . ServletExcluiContrato . doGet ( ServletExcluiContrato . java : 37 )
at javax . servlet . http . HttpServlet . service ( HttpServlet . java : 617 )
at javax . servlet . http . HttpServlet . service ( HttpServlet . java : 717 )
at org . apache . catalina . core . ApplicationFilterChain . internalDoFilter ( ApplicationFilterChain . java : 290 )
at org . apache . catalina . core . ApplicationFilterChain . doFilter ( ApplicationFilterChain . java : 206 )
at org . apache . catalina . core . StandardWrapperValve . invoke ( StandardWrapperValve . java : 233 )
at org . apache . catalina . core . StandardContextValve . invoke ( StandardContextValve . java : 191 )
at org . apache . catalina . core . StandardHostValve . invoke ( StandardHostValve . java : 127 )
at org . apache . catalina . valves . ErrorReportValve . invoke ( ErrorReportValve . java : 102 )
at org . apache . catalina . core . StandardEngineValve . invoke ( StandardEngineValve . java : 109 )
at org . apache . catalina . connector . CoyoteAdapter . service ( CoyoteAdapter . java : 298 )
at org . apache . coyote . http11 . Http11Processor . process ( Http11Processor . java : 859 )
at org . apache . coyote . http11 . Http11Protocol $Http11ConnectionHandler . process ( Http11Protocol . java : 588 )
at org . apache . tomcat . util . net . JIoEndpoint $Worker . run ( JIoEndpoint . java : 489 )
at java . lang . Thread . run ( Thread . java : 662 )
e aqui esta um pedaço do meu servlet:
Contratos contrato = new Contratos ();
contrato . setiCodigo ( Integer . parseInt ( request . getParameter ( "iCodigo" )));
ContratosDao ad = new ContratosDao ();
if ( ad . excluir ( contrato ) > 0 ){
List < Contratos > lista = new ArrayList < Contratos > ();
lista = ad . listar ();
request . getSession ( true ). setAttribute ( "lista" , lista );
response . sendRedirect ( "listaContrato.jsp" );
} else {
response . sendRedirect ( "erro.html" );
}
}
O erro ocorre na linha 02.
Não sei o qeu esta havendo!!!
Joe_AM 29 de jun. de 2011
alvarofederal:
Estou enviando meu código:
protected void doGet ( HttpServletRequest request ,
HttpServletResponse response ) throws ServletException , IOException {
Contratos contrato = new Contratos ();
contrato . setiCodigo ( Integer . parseInt ( request . getParameter ( "iCodigo" )));
ContratosDao ad = new ContratosDao ();
if ( ad . excluir ( contrato ) > 0 ){
List < Contratos > lista = new ArrayList < Contratos > ();
lista = ad . listar ();
request . getSession ( true ). setAttribute ( "lista" , lista );
response . sendRedirect ( "listaContrato.jsp" );
} else {
response . sendRedirect ( "erro.html" );
}
}
Espero que possam me ajudar.
Como faço pra informar que não é null.
alvarofederal, bom dia.
Como a educação não mandou lembrança para o outro prezado colega, te dou a dica:
para postar códigos, coloque-o entre as tags [.code.] e [.\code.] (sem os pontos).
Seu código ficará assim:
protected void doGet ( HttpServletRequest request ,
HttpServletResponse response ) throws ServletException , IOException {
Contratos contrato = new Contratos ();
contrato . setiCodigo ( Integer . parseInt ( request . getParameter ( "iCodigo" )));
ContratosDao ad = new ContratosDao ();
if ( ad . excluir ( contrato ) > 0 ){
List < Contratos > lista = new ArrayList < Contratos > ();
lista = ad . listar ();
request . getSession ( true ). setAttribute ( "lista" , lista );
response . sendRedirect ( "listaContrato.jsp" );
} else {
response . sendRedirect ( "erro.html" );
}
}
Para demais regras/dicas, olha o link que ele indicou…
Agora em relação ao seu erro, como havia escrito o comando contrato.setiCodigo(Integer.parseInt(request.getParameter(“iCodigo”))); está estourando o nullpointer pois o iCodigo vem nulo na requisição.
Dá uma olhada como está a tua jsp e se o nome dos componentes estão batendo certinho…
[]s
drsmachado 29 de jun. de 2011
Bom, provável que o erro esteja aqui, como apontou o camarada “educadinho”
contrato.setiCodigo(Integer.parseInt(request.getParameter("iCodigo")));
Eu criaria uma variável, para receber
request.getParameter("iCodigo"))
E então testaria se a variável está como null.
Ou simplesmente debugaria e verificaria se o nome do parâmetro é este mesmo, tanto no formulário (html ou jsp) quanto na servlet.
alvarofederal 29 de jun. de 2011
Valeu também!!!
Mas como passo criar essa variável!
Se puder me ajudar mesmo, bati tanto a cabeça com isso, que nem raciocinando esotu mais.
drsmachado 29 de jun. de 2011
String iCod = request .getParameter ( "iCodigo" ) ;
if ( iCod == null ) {
// faz alguma coisa
}
alvarofederal 29 de jun. de 2011
Mudei, mas ele continua voltando null.
protected void doGet ( HttpServletRequest request ,
HttpServletResponse response ) throws ServletException , IOException {
Contratos contrato = new Contratos ();
String iCodigo = request . getParameter ( "iCodigo" );
System . out . println ( iCodigo );
if ( iCodigo == null ){
response . sendRedirect ( "erro.html" );
}
ContratosDao ad = new ContratosDao ();
if ( ad . excluir ( contrato ) > 0 ){
List < Contratos > lista = new ArrayList < Contratos > ();
lista = ad . listar ();
request . getSession ( true ). setAttribute ( "lista" , lista );
response . sendRedirect ( "listaContrato.jsp" );
} else {
response . sendRedirect ( "erro.html" );
}
}
Esta mostrando o erro no linha 19 acima.
Aqui esta o erro:
null
29 / 06 / 2011 10 :48 :14 org .apache .catalina .core .StandardWrapperValve invoke
GRAVE : Servlet .service () for servlet ServletExcluiContrato threw exception
java .lang .IllegalStateException
at org .apache .catalina .connector .ResponseFacade .sendRedirect ( ResponseFacade .java :435 )
at servlet .ServletExcluiContrato .doGet ( ServletExcluiContrato .java :51 )
at javax .servlet .http .HttpServlet .service ( HttpServlet .java :617 )
at javax .servlet .http .HttpServlet .service ( HttpServlet .java :717 )
at org .apache .catalina .core .ApplicationFilterChain .internalDoFilter ( ApplicationFilterChain .java :290 )
at org .apache .catalina .core .ApplicationFilterChain .doFilter ( ApplicationFilterChain .java :206 )
at org .apache .catalina .core .StandardWrapperValve .invoke ( StandardWrapperValve .java :233 )
at org .apache .catalina .core .StandardContextValve .invoke ( StandardContextValve .java :191 )
at org .apache .catalina .core .StandardHostValve .invoke ( StandardHostValve .java :127 )
at org .apache .catalina .valves .ErrorReportValve .invoke ( ErrorReportValve .java :102 )
at org .apache .catalina .core .StandardEngineValve .invoke ( StandardEngineValve .java :109 )
at org .apache .catalina .connector .CoyoteAdapter .service ( CoyoteAdapter .java :298 )
at org .apache .coyote .http11 .Http11Processor .process ( Http11Processor .java :859 )
at org .apache .coyote .http11 .Http11Protocol $Http11ConnectionHandler .process ( Http11Protocol .java :588 )
at org .apache .tomcat .util .net .JIoEndpoint $Worker .run ( JIoEndpoint .java :489 )
at java .lang .Thread .run ( Thread .java :662 )
Nossa, esse erro esta acabando comigo.
drsmachado 29 de jun. de 2011
Ta, mas o erro agora é outro. No primeiro era um nullpointer, agora é um IllegalStateException.
alvarofederal 29 de jun. de 2011
Certo, só que pedi pra imprimir no console e ainda continua null!!!
Não acha eastranho, pode ser o mesmo null, certo?
drsmachado 29 de jun. de 2011
Vamos tratar uma coisa de cada vez.
Se você recebe null é por um dos dois motivos ou não existe um elemento associado ao name=“iCodigo” no form que chama a servlet ou ele sequer existe.
Como você está chamado o get, teste chamando
endereco_da_servlet?iCodigo=teste
e veja se isto muda.
alvarofederal 29 de jun. de 2011
Irmãozinho, [BINGO], quer dizer, [RESOLVIDO].
Adivinha só, estava me baseando num outro código aqui, e nem me atentei.
Você foi na mosca.
Parabens e valeu pela ajuda!!!
out.println("<TD><a href = 'ServletExcluiContrato?iCodigo="+contrato.getiCodigo()+
"' ><center> EXCLUIR</a></TD></TR> ");
drsmachado 29 de jun. de 2011
Se está resolvido, edita o tópico original e coloca [resolvido] no título