Pessoal,
Estou tentando criar uma página JSP padrão para ser disparada em caso de exceptions.
Eu fiz o seguinte:
1- Na minha página de erros (ErrorPage.jsp), eu setei isErrorPage para true.
<%@ page isErrorPage="true" %>
2- Na minha página de testes eu setei errorPage para “ErrorPage.jsp”.
<%@ page errorPage="ErrorPage.jsp" %>
3- Para testar, eu forcei o estouro de uma exception tentando acessar um elemento inexistente de um simples array de inteiros.
<%
int[] meuArray = {1,2,3};
for (int i = 0; i < 5; i++) {
out.print(meuArray[i]);
}
%>
Mesmo assim a minha página de erro não foi disparada, só apareceu aquela página padrão HTTP ERROR 500 ou algo assim…
Tem mais alguma configuração pra fazer além disso para a minha página de erros padrão funcionar ?
Obrigado…
Opa,
Este arquivo está no mesmo diretório?? Acho estranho porque era para ter dado certo.
tente colocar isto no teu web.xml:
<error-page>
<error-code>500</error-code>
<location>/errorPage.jsp</location>
</error-page>
:okok:
Estão no mesmo diretório sim. Pois é cara, é realmente muito estranho e eu não consigo achar o que está errado.
Fiz um exemplo bem simples , só com a parte de exception mesmo e não funcionou.
Dê uma olhada…
Este é o código do web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
</welcome-file-list>
<error-page>
<error-code>500</error-code>
<location>/ErrorPage.jsp</location>
</error-page>
</web-app>
Esta é a minha página de erros:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page isErrorPage="true"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Minha Página de Erros</h1>
<hr>
</body>
</html>
Este é o código da página que dispara a exception:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page errorPage="ErrorPage.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Testando a Página de Erros</h1>
<%
int[] meuArray = {1,2,3};
for (int i = 0; i < 5; i++) {
out.print(meuArray[i]);
}
%>
</body>
</html>
Já testei com e sem a tag <error-page> no web.xml. De todo o jeito ele chama a página normal de erro HTTP Internal Error 500… e por aí vai…
Em nenhuma das vezes ele chamou a minha página ErrorPage.jsp.
Obrigado