Mapping do xml não está funcionando

14 respostas
A

Pessoal, nunca mexi com o xml, mas peguei a fj21 e estou tentando mapear os erros, mas quando é para serem disparados, nada ocorre.
Segue o 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>CaelumFJ21</display-name>
  <servlet>
    <servlet-name>primeiraServlet</servlet-name>
    <servlet-class>br.com.fj21.servlet.OiMundo</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>primeiraServlet</servlet-name>
    <url-pattern>/oi</url-pattern>
  </servlet-mapping>
  <servlet>
    <display-name>NovoMundo</display-name>
    <servlet-name>NovoMundo</servlet-name>
    <servlet-class>br.com.fj21.servlet.NovoMundo</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>NovoMundo</servlet-name>
    <url-pattern>/boi</url-pattern>
  </servlet-mapping>  
  <servlet>
    <servlet-name>AdicionaContato</servlet-name>
    <servlet-class>br.com.fj21.servlet.AdicionaContato</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AdicionaContato</servlet-name>
    <url-pattern>/contato</url-pattern>
  </servlet-mapping>
  <error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/erro.html</location>
  </error-page>
  <error-page>
  	<error-code>404</error-code>
  	<location>/404.html</location>
  </error-page>
  <error-page>
  	<error-code>500</error-code>
  	<location>/500.html</location>
  </error-page>  
</web-app>

a partir das tags de erro nada funciona, já o resto, funciona perfeitamente
tanto adicionar quanto a chamada pela uri com /

14 Respostas

P

Estou exatamente com o mesmo problema =(!

No caso, se forçar uma exception, cai na página de erro padrao exibindo o stacktrace né?

A

Os senhores criaram a pagina de erro certinha? com os devidos nomes indicados no webXml ?
Reiniciaram o TomCat?

P

Eu imagino que sim… Meu web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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">
  <display-name>JSP</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>primeiraServlet</servlet-name>
    <servlet-class>servlets.OiMundo</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>primeiraServlet</servlet-name>
    <url-pattern>/oi</url-pattern>
  </servlet-mapping>
  
  <servlet>
  	<servlet-name>adicionaContato</servlet-name>
  	<servlet-class>servlets.adicionaContato</servlet-class>
  </servlet>
  
  <servlet-mapping>
  <servlet-name>adicionaContato</servlet-name>
  <url-pattern>/adicionaContato</url-pattern>
  </servlet-mapping>
  
  
  <error-page>
  <exception-type>java.lang.Exception</exception-type>
  <location>/erro.html</location>
  </error-page>
  
  
</web-app>

Uma página de erros simples dentro do webcontent, chamada erro.html

<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Um erro aconteceu!
</body>
</html>
A

Emite alguma mensagem de erro, ou simplesmente aparece uma tela branca?

P

Aparece a tela de erro padrao, com o stacktrace da exception. Mas o fato é que não redireciona para a pagina erro.html.

A

Tira um print da sua estrutura e posta aki pra eu ver…

P

Estrutura e a tela de erro padrao (errada) em anexo!


A

Bom, reparei que em sua pasta lib não esta o driver do connector, porem isso faria alguma diferença se fosse pra vc inserir algo no banco…como o caso ´eexatamente para dar erro era pra estar funfando pois a estrutura aparentemente estah correta…

mas vou fazer uns testes…

P

Acho q eu dei esse print antes de colocar a o driver, mas ele já tá la…! Mas o erro n é esse n!!! =(

A

Faz um teste ai… cria em seu xml
um novo mapeamento com uma nova pagina JSP.
no xml coloque.

<error-page> <error-code>404</error-code> <location>/pagina-nao-encontrada.jsp</location> </error-page>

e clique com o direito em WebContent criar nova Jsp com o nome ’ pagina-nao-encontrada.jsp’

reinicie o tomCat e na sua url digite
http://localhost:8080/PrimeiraServlet/qualquercoisa.jsp

pra ver oq acontece…

P

O erro persiste!

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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">
  <display-name>JSP</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
    
  <servlet>
  	<servlet-name>adicionaContato</servlet-name>
  	<servlet-class>servlets.adicionaContato</servlet-class>
  </servlet>
  
  <servlet-mapping>
  <servlet-name>adicionaContato</servlet-name>
  <url-pattern>/adicionaContato</url-pattern>
  </servlet-mapping>
  

  
   <error-page>  
   <error-code>404</error-code>  
   <location>/pagina-nao-encontrada.jsp</location>  
   </error-page>  
  
  
</web-app>

Página de erro (pagina-nao-encontrada.jsp)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
 pagina-nao-encontrada.jsp!!!!
</body>
</html>

Erro encontrado em anexo! (Página padrao de erro 404, não a personalizada).


H

Na sua página de erro, vc colocou a tag <%@page isErrorPage=“true” %>" ?

H

Coloca também por favor, o código da sua jsp.

P

Qual das jsps? Tipow, com o trecho

<error-page>  
   <error-code>404</error-code>  
   <location>/pagina-nao-encontrada.jsp</location>  
 </error-page>

E forçando uma url inexistente, eu deveria ser redirecionado para a página de erro personalizada “pagina-nao-encontrada.jsp”, correto? O código dela é o mais simples possível… Seria algo como:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" 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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
 pagina-nao-encontrada.jsp!!!!
</body>
</html>

Mas sobre essa dica da tag de error page, fiz o teste abaixo também e não obtive sucesso:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" isErrorPage="true"%>
<%@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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
 pagina-nao-encontrada.jsp!!!!
</body>
</html>

Estou tentando forçar um erro 404 básico no browser, mas n funciona o redirecionamento. Com alguem aqui funciona? Se sim, há como disponibilizar um código com esse redirecionamento para mim? Pode ser o projeto inteiro, eu abro aqui no eclipse e tento adaptar pra mim.

Criado 11 de junho de 2010
Ultima resposta 14 de ago. de 2010
Respostas 14
Participantes 4