Debug en JSF

Uno de los mayores problemas que nos podemos encontrar al trabajar con JSF es lo oscuro que puede llegar a ser cuando ocurre un error. Si tenemos suerte y es un fallo de nuestro modelo, nos sacará la traza en la pantalla, si no tenemos tanta, nos lo sacará en los logs del servidor. Pero y si el problema no es de nuestro código (ejem, siempre es de nuestro código ;-) ) y es un problema ocurrido (seguramente con razón ;-) ) en una de las fases del ciclo de vida de una petición JSF (esto lo dejo para otro día si hay peticiones). Simplemente le damos a enviar y volvemos a la misma página. ¿Cómo podemos saber que está pasando?.


La parte fácil, pero que muchas veces se nos olvida es usar los tags message y messages. El primero para un componente concreto, el segundo para todos los errores de la página. Este segundo será de más utilidad si usamos algunos de sus atributos, como por ejemplo showSummary o showDetail. Es un primer paso. Pero, ¿no podemos conseguir más información?. Si, podemos usar Faces Trace.


FacesTrace es una herramienta desarrollada por Cagatay Civici y Yigit Darcin que nos permitirá en todo momento saber que pasa en nuestra aplicación Java Server Faces, mostrando en la misma página toda la información sobre el estado de la aplicación.


Free Image Hosting at www.ImageShack.us



La instalación es muy sencilla (es una taglib, ojo a la doc de la web a día de hoy, tiene mal el prefix de la misma), pero su utilidad es grande. Recomendable.

7 Respuestas a “Debug en JSF”


  1. 1 Alberto

    No me acaba de funcionar

    < %@ taglib uri="http://sourceforge.net/projects/facestrace" prefix="cv"%>

    dice q no encuentra el espacio de nombres para colmo lo del prefix que es cv, ft??? pruebo los 2 y no lo reconocen.

    Faces Servlet
    /faces/

    Esto lo usas por q a mi me peta la aplicacion entera si lo pongo.

    yo tengo
    Faces Servlet
    .jsp

    que hago lo cambio lo sustituyo???

    Como lo hiciste tu?????????????

  2. 2 Al

    Ummm… tienes que poner el mismo prefix en el import y en la página, el que quieras, pero el mismo en los dos (la declaración del taglib y al usar el tag).

    Por ejemplo:

    < %@ taglib uri=”http://sourceforge.net/projects/facestrace” prefix=”ft”%>
    y
    <ft:trace />

    Eso sí, sin olvidar el jar y el mapping ;-)

  3. 3 Alberto

    No me acaba de funcionar

    < %@ taglib uri=”http://sourceforge.net/projects/facestrace” prefix=”cv”% >

    dice q no encuentra el espacio de nombres para colmo lo del prefix que es cv, ft??? pruebo los 2 y no lo reconocen.

    <servlet-mapping
    <servlet-name>Faces Servlet</servlet-name>
    </url-pattern>
    </servlet-mapping>

    Esto lo usas por q a mi me peta la aplicacion entera si lo pongo.

    yo tengo
    <servlet-mapping
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>.jsp</url-pattern>
    </servlet-mapping>

    que hago lo cambio lo sustituyo???

    Como lo hiciste tu?????????????

  4. 4 alberto

    Lo que me da problemas es el mapping en web.xml por q no me lo reconoce en el editor de la jsp dice q no reconoce nada para esa uri. Pongo el que esta en el tutorial de ejmplo.

    servlet-mapping
    servlet-name Faces Servlet /servlet-name
    url-pattern /faces/* /url-pattern
    /servlet-mapping

    con los tag correspondientes que el menor q y el mayor q este blog ufff

  5. 5 alberto

    Vale ya esta configurado usando las penosas herrameintas que hay para JSF no hay ninguna estable.

    Las trazas se pone solo no sale nada que se supone q las vas poniendo en todas las paginas. Y que imprimen los loggers del lo4j???. Por favor contesta a mi pregunta..

  6. 6 Al

    A ver, tranquilidad. Como te han dicho en jh, hay mucha gente en el mundo trabajando con estas cosas y no se quejan tanto, así que no aceleres, que seguro que es alguna tontería que no estas viendo o algún concepto que no acabas de entender.

    Quizás tu servlet de JSF no se llame “Faces Servlet”, no hay nada que le obligue a tener ese nombre.

    Si ya lo has arreglado (eslo que quieres decir con “ya está configurado”), no sé que quieres decir con tu frase de las trazas. En todo caso lo intento:

    - Si, tienes que poner “algo” en cada página que quieras ver con facestrace. Puede ser el tag de faces trace o una página tuya llamad a”debug” que la tenga, de forma que lo puedas activar/desactivar desde esa página.

    - Si has puesto el appender de facestrace, saldrá HTML en la página directamente (lo que muestra la imagen del post). El resto de trazas, saldrá según lo configures en log4j: en la consola, en un fichero, en base de datos, etc.

  7. 7 William

    El prefijo no es ft, ni cv, es FacesTrace.

Añade un Comentario





Close
E-mail It