[Again] Pagina de erro que nunca funciona

Boa noite pessoal. Eu estou com um erro na minha pagina de erro e andei procurando e notei varios posts aqui no GUJ a respeito e nenhum supriu o meu erro. Sempre que vou tentar utilizar esse recurso de pagina de erro nao funciona. O que pode ser? Tentei utilizar um exemplo bem basico e nada.

Arquivo web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

	<context-param>
    	<param-name>
     	 javax.servlet.jsp.jstl.fmt.localizationContext
   		 </param-name>
    	<param-value>message_en</param-value>
  	</context-param>

		
	<servlet>
		<servlet-name>Hora</servlet-name>
		<servlet-class>br.com.teste.Hora</servlet-class>
	</servlet>
	
	<servlet>
		<servlet-name>MyServlet</servlet-name>
		<servlet-class>br.com.servlet.MyServlet</servlet-class>
	</servlet>
	
	<servlet>
		<servlet-name>VendaServlet</servlet-name>
		<servlet-class>br.com.servlet.VendaServlet</servlet-class>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>Hora</servlet-name>
		<url-pattern>/Pessoa.do</url-pattern>
	</servlet-mapping>
	
	
	<servlet-mapping>
		<servlet-name>MyServlet</servlet-name>
		<url-pattern>/MyServlet.do</url-pattern>
	</servlet-mapping>
	
	<servlet-mapping>
		<servlet-name>VendaServlet</servlet-name>
		<url-pattern>/Venda.do</url-pattern>
	</servlet-mapping>
	
	
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	
	<error-page>
  		<exception-type>java.lang.NullPointerException</exception-type>
  		<location>/erro.jsp</location>
  	</error-page>
	
 
  
</web-app>

Meu servlet vai gerar uma exception

public class VendaServlet extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(req, resp);
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException, NullPointerException {
		
		resp.setContentType("text/html");
				
		Produto p1 = null;
		p1.setDescricao("teste");
		
		
		req.getSession().setAttribute("produto", p1);
		
		RequestDispatcher view = req.getRequestDispatcher("jsp/pagina1.jsp");
		view.forward(req, resp);
		
	}
}

Pagina de erro:


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" isErrorPage="true" %>
<html>
<head>
<title>Pagina de erro</title>
</head>
<body>
	<p>Houve um erro interno</p>
	<%= exception.getMessage() %>
</body>
</html>

OBS: Ja tentei ao inves de configurar no arquivo web.xml a Exception Trowable e mesmo assim nao funcionou…
Ele nao mostra a mensagem de erro e sim o erro interno de servidor:
HTTP 500 - Erro Interno do Servidor.
No console do tomcat aparece o stackTrace.

Alguem ja viu isso?

Essa página soh vai ser carregada se tiver um erro específico de nullpointer. Faça um teste, declare no seu web.xml pra ele mostrar a página de erro se tentar acessar um conteúdo inexistente.
no seu Web xml coloque o seguinte

<error-page>
        <error-code>404</error-code>
        <location>/error.jsp</location>
    </error-page>

rode a sua aplicação e tente acessar uma pagina inexistente no seu contexto… Só para ver se esta funcionando a diretiva que trata de erros…

Caro Guitar_Men .
Ja tentei fazer isso tambem e nao deu certo. A respeito da exception de NullPointeException o meu servlet esta fazendo referencia de uma variavel nula pra lancar esse erro mesmo. A minha pagina de erro nao executa e sempre aparece a pagina de erro interno do Servidor e o stackTrace aparece no console.

SEVERE: Servlet.service() for servlet VendaServlet threw exception java.lang.NullPointerException at br.com.servlet.VendaServlet.doPost(VendaServlet.java:56) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Unknown Source)

Eu quero capturar esse erro na minha pagina de erro. Veja o Servlet.

public class VendaServlet extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(req, resp);
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException, NullPointerException {
		
		resp.setContentType("text/html");
		Produto p1 = null;
		p1.setDescricao("teste");
		
		
		
		
		req.getSession().setAttribute("produto", p1);
		
		RequestDispatcher view = req.getRequestDispatcher("jsp/pagina1.jsp");
		view.forward(req, resp);
		
	}
}

A pagina de erro:

[code]
<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1” isErrorPage=“true” isELIgnored=“false”%>
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

Pagina de erro

Houve um erro interno

[/code]

Ja tentei usar a EL sozinha sem o auxilio de tag como ${pageContext.exception} e mesmo assim nao deu certo… Alguem pode ver o meu erro?

Obrigado a todos

Bom dia galera. Gostaria de saber de voces porque que quando eu executo este exemplo que mostrei para voces pelo navegador implicito do eclipse ele nao funciona e quando eu executo esse exemplo por outro navegador qualquer ele funciona.

Obrigado…