Página de erro customizada para erros na JSP

3 respostas
marcfreire

Pessoal é o seguinte, pretendo customizar minhas páginas de erro. uso EJB e Struts.
Já consegui com sucessos configurar meu struts.xml para redirecionar para uma página de erro customizada.
O problema é que ele redireciona somente de houver problema nas action ou no módulo ejb, mas se houver um
erro na JSP não !

Dei uma pesquisa na net e verifiquei que deveria colocar no meu web.xml o seguinte código :

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

bem, quando digito uma url inválida dá tudo certo, ele redireciona para a página "pagina_nao_encontrada.jsp"
mas quando gera algum erro na jsp ele faz é deixar a págia em branco !

também coloquei na minha jsp que gera o erro o seguinte código

<%@ page isErrorPage="true" %>

continuou não dando certo !
Alguem tem alguma solução ?

3 Respostas

quebrado
vc precisa cria uma pagina para pegar somente o status 500. E ae sim adicionar a tag
&lt;%@ page isErrorPage="true" %&gt;
Fica mais ou menos assim:
&lt;error-page&gt;
		&lt;error-code&gt;404&lt;/error-code&gt;
		&lt;location&gt;/WEB-INF/jsp/errors/404.jsp&lt;/location&gt;
	&lt;/error-page&gt;


	&lt;error-page&gt;
		&lt;error-code&gt;500&lt;/error-code&gt;
		&lt;location&gt;/WEB-INF/jsp/errors/500.jsp&lt;/location&gt;
	&lt;/error-page&gt;
t+ 8)
marcfreire

certo, coloquei na meu web.xml o seguinte código

<error-page>  
    	<error-code>404</error-code>  
     	<location>/erro/pagina_nao_encontrada.jsp</location>  
     </error-page> 
	
	
<error-page>  
     <error-code>500</error-code>  
     <location>/erro/error.jsp</location>  
</error-page>
continuou não dando certo para o erros gerados na jsp. na pagina que gera o erro tem o seguinte código pra testar :
<%
int div = 4/0; // // java.lang.ArithmeticException: / by zero
out.print("o valor de div eh igual a "+div);
%>

quando acesso a página ela é carregada somente até o ponto antes desse scriptlet , tudo depois fica em branco !

o engraçado é que para o erro 404 funciona, quando tento acessar uma url inválida ele redireciona direitinho
só não funciona para qualquer outro tipo de erro como esse de divisão por zero por exemplo

quebrado

Olha um exemplo de pagina de erro que uso.

&lt;%@ page isErrorPage="true" import="java.io.*" %&gt;

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Erro&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div&gt;
		&lt;div&gt;&lt;%= exception.toString() %&gt;<br>	&lt;/div&gt;

					&lt;%
					out.println("&lt;!--");
					StringWriter sw = new StringWriter();
					PrintWriter pw = new PrintWriter(sw);
					exception.printStackTrace(pw);
					out.print(sw);
					sw.close();
					pw.close();
					out.println("--&gt;");
					%&gt;
&lt;/div&gt;
        
&lt;/body&gt;
&lt;/html&gt;

blz

Criado 10 de fevereiro de 2010
Ultima resposta 11 de fev. de 2010
Respostas 3
Participantes 2