FacesTrace: Introspection for JSF Applications

Posted by Fred Jean on November 13th, 2006 in General

Do yourself a favor if you are developing JSF applications. Have a look at FacesTrace. I certainly wish that I looked at it earlier.

FacesTrace is a JSF component that allows developers to have visibility into the JSF request lifecycle. It also provides some timing information as well as the ability to view the information stored at the different JSF scope levels. Here is a screenshot (among others) from the project's web site:

 Img83 6052 Ft11If

Thanks to FacesTrace, I was able to track down the root cause of a problem I worked on for the better part of last week. It was a simple matter of tweaking some code once FacesTrace identified what phase was failing and what it was failing on.

You will need to add the following tag library definition to your application (and it's web.xml) if you are using Facelets:

<?xml version="1.0"?>

<!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
"facelet-taglib_1_0.dtd">

<facelet-taglib>

<namespace>http://sourceforge.net/projects/facestrace

<tag>

    <tag-name>trace

    <component>

        <component-type>net.sf.facestrace.component.Trace

    </component>

</tag>

</facelet-taglib>

Once it is in place, you can add the namespace to the root element of your facelets document and add an <ft:trace /> tag somewhere on the page.

Bookmark: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • Reddit
[Trackback URI]

Comments

Subscribe to comments with RSS

  1. fred said, on February 11th, 2007 at 3:43 pm

    You are missing the close tags for “namespace”, “tag-name”, “component-type”.

    I also had to add:

    facelets.LIBRARIES
    /WEB-INF/tomahawk.taglib.xml;/WEB-INF/sandbox.taglib.xml;/WEB-INF/facestrace.taglib.xml

    in my web.xml

    (Faces is a mysterious set of tiny unrelated config files pointing to broken outdated jars. Or at least this is how I see it :-) )