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
| public class MyJsfServlet extends HttpServlet {
private FacesServlet delegate;
private static String CLE_PAGE_COURANTE = "class org.apache.myfaces.renderkit.html.util.JavascriptUtils.OLD_VIEW_ID";
public void init(ServletConfig servletConfig) throws ServletException {
delegate = new FacesServlet();
delegate.init(servletConfig);
errorPage = servletConfig.getInitParameter(INIT_PARAM_ERROR_PAGE);
}
public void destroy() {
delegate.destroy();
}
public ServletConfig getServletConfig() {
return delegate.getServletConfig();
}
public String getServletInfo() {
return delegate.getServletInfo();
}
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
try {
delegate.service(request, response);
} catch (Throwable e) {
String pageCourante = request.getAttribute(CLE_PAGE_COURANTE).toString();
Throwable ee = ((ServletException) e).getRootCause();
StackTraceElement[] stackTraceElements = ee.getStackTrace();
request.setAttribute("exceptionGeneree", stackTraceElements);
request.getRequestDispatcher("/faces"+pageCourante).forward(request, response);
}
} |