Controle de erro com servlet?

4 respostas
aorocha
Como que faço controle de erro com servlet, com jsp faço assim: Pagina que recebe o erro:
<%@ page isErrorPage="true" %>
<html>
Um erro ocorreu.<br/>
${pageContext.errorData.throwable}
</html>
configuração no web.xml:
<error-page>
<exception-type>
java.sql.SQLException</exception-type>
<location>/erro.jsp</location>
</error-page>
quando os erros ocorrem em paginas jsp, funciona, mas quando ocorre em servlet não, meu servlet:
protected void service(HttpServletRequest req, HttpServletResponse response)
		throws ServletException,
		IOException {


....

                     try {

				for(String linha: expArq.getImport(filtro)){
					out.write(linha.getBytes());
			         }
			} catch (SQLException e) {
				//throw new SQLException(mensagen);
				e.printStackTrace();
			}

}

o que tenho que fazer?

4 Respostas

Pedrosa

Use assim ele pega qualquer erro na aplicação, fica mais generico.

<error-page>
   <exception-type>java.lang.Exception</exception-type>
       <location>/erro.jsp</location>
</error-page>

e no JSP

if(exception!=null){
    out.println("Ocorreu o seginte problema: " + exception) ;
}
aorocha
Fiz isto na servlet
catch (SQLException e) {
			throw new ServletException(e);
e assim na web.xml
<error-page>
		<exception-type>java.sql.SQLException</exception-type>
		<location>/pags/erro.jsp</location>
	</error-page>	 

	<error-page> 
		<exception-type>javax.servlet.ServletException</exception-type> 
		<location>/pags/erro.jsp</location> 
	</error-page>	 		  
		  
	<error-page> 
		<exception-type>java.lang.Exception</exception-type> 
		<location>/pags/erro.jsp</location> 
	</error-page>

só que a pagina fica em branco, alguém sabe oque pode ser?

Pedrosa

Deixando do jeito que eu falei não pega os erros da Servlet ou qualquer outro?, como vc está imprimindo o erro na página?

MiltonBastos

Me desculpem por “ressucitar” o tópico, mas estou com o mesmo problema, e ainda tenho um pouco de dificuldade com Java, pois sou iniciante.

Meu web.xml tem esse trecho:

<error-page> <exception-type> java.sql.SQLException </exception-type> <location> /errorPage.jsp </location> </error-page>

Tenho uma página padrão para exibir erros, chamada errorPage.jsp, conforme indicado no web.xml acima.

Coloquei a diretiva abaixo nas páginas JSP:

<%@page errorPage="errorPage.jsp"%>

Porém, quando acontece erro num Servlet, fica apenas uma página em branco, assim
como aconteceu com o colega acima.

O que fazer para aparecer o erro na tela, redirecionando para a página padrão de erros?

Criado 6 de julho de 2006
Ultima resposta 30 de jul. de 2008
Respostas 4
Participantes 3