Página de erro customizada para erros na JSP

3 respostas
M

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

Q
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)
M

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

Q

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