Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / October 2006

Tip: Looking for answers? Try searching our database.

Custom error page.........please help me

Thread view: 
gbattine - 17 Oct 2006 17:34 GMT
Hi guys,
i'm working on a jsf application and i've decided to use a custom error
page.
What i want is displaying the stacktrace of the application level'
exceptions like nullpointer,mysql exceptions etc....in a custom error
page.
I've followed an example at the end of core java server faces book but
it's doesn' work!!
Please help me,these are my steps...
i've defined in my web.xml

<servlet-mapping>
 <servlet-name>Faces Servlet</servlet-name>
 <url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
 <servlet-name>Faces Servlet</servlet-name>
 <url-pattern>*.faces</url-pattern>
</servlet-mapping>
 <error-page>
 <error-code>500</error-code>
 <location>/errorDisplay.jsp</location>
</error-page>

i've errorDisplay.jsp

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<html>

<f:subview id="dummy">
<head>

 <title><h:outputText value="Problema nell'applicazione"/></title>
</head>
<body>
<h:form>
<p><h:outputText value="Un errore è stato riscontrato"/></p>

<p><h:outputText value="Ecco lo stacktrace"/></p>
<h:inputTextarea value="#{errorBean.stackTrace}"
rows="40" cols="80" readonly="true"/>
</h:form>
</body>
</f:subview>
</html>

and this is my managed bean ErrorBean.java

package giu;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.sql.SQLException;
import java.util.Map;
import javax.faces.context.FacesContext;
import javax.servlet.ServletException;

public class ErrorBean {
    public String getStackTrace() {
        FacesContext context = FacesContext.getCurrentInstance();
        Map request = context.getExternalContext().getRequestMap();
        Throwable ex = (Throwable)
request.get("javax.servlet.error.exception");
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        fillStackTrace(ex, pw);
        return sw.toString();
    }

    private static void fillStackTrace(Throwable t, PrintWriter w) {
        if (t == null)
            return;
        t.printStackTrace(w);
        if (t instanceof ServletException) {
            Throwable cause = ((ServletException) t).getRootCause();
            if (cause != null) {
                w.println("Root cause:");
                fillStackTrace(cause, w);
            }
        } else if (t instanceof SQLException) {
            Throwable cause = ((SQLException) t).getNextException();
            if (cause != null) {
                w.println("Next exception:");
                fillStackTrace(cause, w);
            }
        } else {
            Throwable cause = t.getCause();
            if (cause != null) {
                w.println("Cause:");
                fillStackTrace(cause, w);
            }
        }
    }
}

I cause mysql exceptions in my application,but i see the standard stack
trace,not my jsp page with stack trace..
i think my error is in web.xml in which 500 is only a type of
error....i've to adding mysql exceptions????
How can i do it?
Please help me
Manish Pandit - 17 Oct 2006 19:55 GMT
You can add exceptions to the same fragment by doing :

<error-page>
     <exception-type>your.package.your.exception</exception-type>
     <location>/errorDisplay.jsp</location>
</error-page>

-cheers,
Manish


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.