Entender erros

5 respostas
D

Salve galera, sabe aquele monte de linhas quando você está desenvolvendo uma aplicação retornando erros? será que alguém ai pode me dar uma ajuda a entende-lo afim de facilitar a busca aonde o dado errado está?
um pequeno trecho do erro:

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: Cannot find bean under name comboConvenio
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
	org.apache.jsp.jsp.recebeLoteCriticadora_jsp._jspService(recebeLoteCriticadora_jsp.java:224)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)


root cause 

javax.servlet.jsp.JspException: Cannot find bean under name comboConvenio
	org.apache.struts.taglib.html.OptionsTag.getIterator(OptionsTag.java:407)
	org.apache.struts.taglib.html.OptionsTag.doEndTag(OptionsTag.java:232)
	org.apache.jsp.jsp.recebeLoteCriticadora_jsp._jspx_meth_html_options_0(recebeLoteCriticadora_jsp.java:478)
	org.apache.jsp.jsp.recebeLoteCriticadora_jsp._jspx_meth_html_select_0(recebeLoteCriticadora_jsp.java:433)
	org.apache.jsp.jsp.recebeLoteCriticadora_jsp._jspx_meth_html_form_0(recebeLoteCriticadora_jsp.java:326)
	org.apache.jsp.jsp.recebeLoteCriticadora_jsp._jspService(recebeLoteCriticadora_jsp.java:207)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.25 logs.

Valeu a todos

5 Respostas

M

coloque o teu bean em um package… :slight_smile:

D

Caro Matheus,

Na verdade apenas queria entender e saber quais as linhas principais para eu localizar os erros mais brevemente? entendeu?
Valeu pela ajuda… :slight_smile:

V

Essa é a pergunta que eu vou responder com o maior prazer do mundo. Afinal, trata-se de ensinar a pescar…

Passo a passo:

type Exception report

Isso signitica que o programa terminou por causa de uma exceção. Não foi falha da máquina virtual. O programa não foi abortado. Nada disso. Simplesmente aconteceu alguma situação possível, porém não esperada. Ou esperada, mas que não foi corretamente tratada. Bom, se

message

description The server encountered an internal error () that prevented it from fulfilling this request.

Para essa parte só existe uma dica: estude inglês. :slight_smile:

javax.servlet.ServletException: Cannot find bean under name comboConvenio

Essa linha é muito importante pois mostra qual foi o tipo de Exceção e o motivo pelo qual ela foi lançada.

org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
   org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
   org.apache.jsp.jsp.recebeLoteCriticadora_jsp._jspService(recebeLoteCriticadora_jsp.java:224)
   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)

As linhas seguintes vão mostar a pilha de chamadas por onde a exceção passou até chegar no método main. Sempre desça até a primeira linha onde está o seu código. Provavelmente aí estará o erro.

Já leu esse texto da Bani adaptado do livro Effective Java? Não? Então leia, leeeia, leeeeeeeeia!

Espero ter ajudado. Para mais detalhes, estude o mecanismo de tratamento de Exceções…

t+
Vinci

D

Opa Vinci…
Era exatamente o que eu queria…
Mas será que poderia comentar melhor aqui?

Não entendi o que você quis dizer com desça até a primeira linha aonde está o seu código.
Grato pela sua atenção

V

Tem coisas que você faz que vão compilar normalmente mas vão ocasionar erros no código das classes que você está usando.

Suponha, por exemplo, que você esteja usando uma classe que envie um email e você tenha que passar o endereço. Se você passar um endereço que não exista, o seu código vai compilar normalmente. Mas a classe que realmente envia o email vai lançar uma exceção durante a execução.

A classe que envia o email pode estar 100 % correta e mesmo assim indicará um erro. Obviamente, você não deve ficar procurando o erro nessa classe. O erro provavelmente é seu. Então, quando uma exceção gerar uma mensagem feiosa com essa que você mandou, tente olhar qual é a parte do seu código que chama a classe que lança a exceção.

Fui mais claro agora?

Criado 17 de agosto de 2004
Ultima resposta 18 de ago. de 2004
Respostas 5
Participantes 3