Erro 404 personalizada não é reconhecida [resolvido]

Pessoal,

Já procurei em diversos fóruns, porém não consegui localizar meu problema.
A princípio parece ser simples, porém não sei resolver.
Estou fazendo o exercício da Caelum FJ-21 para mensagem personalizada de erro (404).
Lá vão os códigos.

  • web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>jspteste</display-name>
  <welcome-file-list>
    <welcome-file>bemvindo.jsp</welcome-file>
  </welcome-file-list> 
  
  
  <error-page>
	<exception-type>java.lang.Exception</exception-type>
	<location>/erro.jsp</location>
  </error-page>

  <error-page>
	<error-code>404</error-code>
	<location>/pagina.jsp</location>
  </error-page>  
    
  <error-page>
	<error-code>500</error-code>
	<location>/pagina.jsp</location>
  </error-page>
  
</web-app>
  • pagina.jsp
<%@ page isErrorPage="true" %>
<html>
	<h1>404 - Página não encontrada </h1>
</html>
  • Console ( o que aparece )
30/03/2009 15:30:04 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:jspteste' did not find a matching property.
30/03/2009 15:30:04 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Arquivos de programas\Java\jdk1.6.0_10\jre\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Arquivos de programas/Java/jre6/bin/client;C:/Arquivos de programas/Java/jre6/bin;C:\PVSW\bin;C:\ARQUIV~1\Borland\CBUILD~1\Projects\Bpl;C:\ARQUIV~1\Borland\CBUILD~1\Bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Arquivos de programas\QuickTime\QTSystem\;C:\Arquivos de programas\Microsoft SQL Server\80\Tools\Binn\;C:\Arquivos de programas\Microsoft SQL Server\90\Tools\binn\;C:\BCA\; C:\Arquivos de programas\VISUS; C:\Arquivos de programas\Java\jdk1.6.0_10\bin
30/03/2009 15:30:04 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-7080
30/03/2009 15:30:04 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1077 ms
30/03/2009 15:30:04 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
30/03/2009 15:30:04 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.18
30/03/2009 15:30:05 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
30/03/2009 15:30:05 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
30/03/2009 15:30:06 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-7080
30/03/2009 15:30:06 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:7009
30/03/2009 15:30:06 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/78  config=null
30/03/2009 15:30:06 org.apache.catalina.startup.Catalina start
INFO: Server startup in 2003 ms

Já vi algumas pessoas falando em mudar de navegador, de servidor, opções avançadas internet, mas nada resolveu.

Vlw!

Opa…

pelo código que vc postou acima, vc estaria procurando pelo erro 400…
vc não quer capturar o 404?

abç

Marcos,

Valeu mesmo…
Estava erradíssimo mesmo!!! :oops:

Vou corrigir isto!!!

Vlw

Então Marcos,

Realmente estava errado de “400” para erro “404”.
Mas não resolveu o problema…
Não querendo me justificar, eu tinha alterado para ver se influenciava em alguma coisa.

O estranho é que fiz alguma páginas para dar uma Exception, onde era direcionada para uma página, mas nesta também não é reconhecida.

Vlw

Consegui resolver o problema…

É uma configuração do IE na qual não deixa exibir a mensagem personalizada, somente a padrão.
A solução é ir em:

-Ferramentas
-Opções da Internet
-Avançadas
-No grupo de “Navegação”, desmarcar a opção:
“MOSTRAR MENSAGENS DE ERRO HTTP AMIGÁVEIS”

[]s

No Google Chrome:

-Opções
-Desabilitar a opção
–[B]“MOSTRAR SUGESTÕES PARA ERROS DE NAVEGAÇÃO”[/B]

[]s

po… legal… aqui tambem somente funcionou desabilitando a opcao do IE. Porém não tem como mudar em todas as máquinas de usuários… rs…

alguma nova sugestão??

O padrão é criar uma “Soft 404”, que é uma página normal (portanto tem código de erro HTTP 200 = OK, sendo visualizada em qualquer browser) mas que faz a mesma coisa que uma página de erro 404.

O problema, obviamente, é que não sei como é que se faz isso no Tomcat.

mas para o exercício da Caelum, isso matou à pau…rs