Bonjour,
je developpe une application web sous ECLIPSE avec servlet, jsp, EJB, JBOSS

Depuis une service métier ou depuis une servlet, je veux rediriger une erreur vers une page JSP.

Voici ma servlet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
public class CreateMessageForumServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
 
	@EJB   
	private PersonService personService;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CreateMessageForumServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
 
		protected void sendErrorRedirect(HttpServletRequest request,
		HttpServletResponse response, String errorPageURL, Throwable e) throws
		ServletException, IOException {
			request.setAttribute ("javax.servlet.jsp.jspException", e);
			getServletConfig().getServletContext().
			getRequestDispatcher(errorPageURL).forward(request, response);
		}
 
 
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		try {
			HttpSession  session = request.getSession(true);
			String authentification = request.getParameter("authentification");
			String userName = null;
			String password = null;
			if ("false".equals(authentification)) {
				userName = request.getParameter("userName");
				password = request.getParameter("password");
				List<Person> personList = personService.getPersonByUserNameAndPassword(userName, password);
				if (personList.size()!=1) {
					throw new CustomisedException("Il n'y a pas d'utilisateur correspondant à cet identifiant et à ce mot de passe");
				}
				session.setAttribute("userName",userName);
				session.setAttribute("password",password);
			}
			userName = (String)session.getAttribute("userName");
			password = (String)session.getAttribute("password");
			if (userName==null || password==null) {
				request.setAttribute("authentification","false");
				getServletContext().getRequestDispatcher("/jsp/authentification.jsp")
				.forward(request, response);
			} else {
				getServletContext().getRequestDispatcher("/jsp/createForumMessage.jsp")
				.forward(request, response);
			}
 
		} catch (Exception ex) {
    		try {
        		sendErrorRedirect(request,response,"/jsp/errorPage.jsp",ex);
        		} catch (Exception e) {
        		e.printStackTrace();
        		}
		}
	}
 
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request,response);
	}
 
}
J'ai trouvé ce code sur internet et normalement il devrait rediriger ma "CustomisedException" vers ma page d'erreur JSP "errorPage.jsp" que voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<%@ page isErrorPage="true" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ include file="taglibs.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=ISO-8859-1">
<title>Error Page</title>
	<link rel="stylesheet" type="text/css" href="css/error.css" media="screen" title="Styles de la page error.jsp" />
</head>
<body>
	<p>ca passe</p>
	<div class="error_frame">
		<!--${requestScope.exception.message}-->
	</div>
</body>
</html>
Or, lorsque cette exception est levée, mon browser m'affiche la page d'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Etat HTTP 500 -
 
type Rapport d'exception
 
message
 
description Le serveur a rencontr� une erreur interne () qui l'a emp�ch� de satisfaire la requ�te.
 
exception
 
exception.CustomisedException: Il n'y a pas d'utilisateur correspondant à cet identifiant et à ce mot de passe
	servlet.CreateMessageForumServlet.doGet(CreateMessageForumServlet.java:59)
	servlet.CreateMessageForumServlet.doPost(CreateMessageForumServlet.java:89)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
 
note La trace compl�te de la cause m�re de cette erreur est disponible dans les fichiers journaux de JBoss Web/2.1.2.GA.
JBoss Web/2.1.2.GA
Je ne comprends pas pourquoi je ne suis pas redirigé vers ma page d'erreur "errorPage.jsp" !!! Est-ce que quelqu'un peut m'aider ? Merci d'avance.