Olá pessoal,
trabalho numa aplicação feita em Vraptor3+hibernate.
Fiz uma página de erro personalizada, mas não funcionou.
erro.jsp (fica dentro de webcontent)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page language="java" isErrorPage="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>teste de erros</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<h3>Ocorreu um erro: <%= exception%></h3>
</body>
</html>
nas views do Vraptor coloquei
<%@ page language="java" import="java.util.*" errorPage="/erro.jsp" %>
simulaei um erro de divisão por zero. Mesmo assim a tela erro apareceu, com:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
br.com.caelum.vraptor.InterceptionException: an exception was raised while executing resource method
br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:86)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
...
br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
...
root cause
java.lang.ArithmeticException: / by zero
br.com.blumar.portaldofornecedor.controller.TarifaController.form(TarifaController.java:570)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
...
br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
...
1. Onde estou errando ?
sei que também tem a opção de configurar no web.xml. Se não me engano é algo assim:
2. em Vaptor qual a melhor opção: configurar a página de erro no jsp ou no web.xml
3. Uso tambem o log4j e gravo tudo num arquivo.
Como faço para gravar o erro captado pela página de erro neste log ?
Abs