JSF: Excepciones más comunes y errores frecuentes

El problema de ser un blade runner de nuevos frameworks es que más de una vez nos encontramos con problemas que ni el google puede solucionar. En el caso de JSF es fácil encontrarse con infinidad de tutoriales (que más o menos enseñan lo mismo), un buen sitio de tutoriales sobre JSF sería este, por ejemplo.

El problema reside en encontrar sitios que comenten buenas prácticas a la hora de diseñar una aplicación JSF o que describa los errores más comunes a la hora de ponerse manos a la obra. En el caso de el archiconocido struts una de las páginas a las que más utilidad le hemos sacado a lo largo del tiempo es una simple página en la que se describen los errores más comunes y sus posibles soluciones, aquí.
Partiendo un poco de la idea de esa página pero aplicada a JSF, en Linking Paths hemos pensado en dedicar una página de este blog a describir las excepciones más comunes en JSF, sus posibles causas y un detalle de sus soluciones. Y por supuesto os animamos a todos a participar, para ir construyendo lo que puede ser una referencia para el sufrido programador que se adentra en territorios inexplorados ;-)

Podéis enviar vuestros errores (con solución, que no se trata de que esto se convierta en un foro de JSF) a través de los comentarios a este post, que prometo ir incluyéndolos en el cuerpo de la página. Y para predicar con el ejemplo:

Error: javax.faces.FacesException: Cannot get value for expression
Algún componente de JSF no puede acceder al value que hemos indicado de un backing bean
Causas Probables:

  • Comprobar que la clase y paquete del backing bean está bien escrita en faces.xml

  • Comprobar que existe la propiedad a la que hacemos referencia en el componente


  • Error: Al pinchar en un CommandButton, no hace nada y vuelve a la misma página

    Causas Probables:

  • Comprobar que la clase y paquete del backing bean está bien escrita en faces.xml

  • Si en el form no existe ningún campo que esté relacionado con una propiedad (no con un método) del backing bean, NO se creará al entrar en el form, por tanto no se podrá llamar a sus métodos (que siempre devolverán null y por tanto te mostrarán la página de nuevo, ya que null a la vuelta de una llamada hace que se vuelva a mostrar la página que la originó). Se debe usar un CommandLink en esos casos; si queremos que tenga apariencia de botón hacerlo a través de style


  • TomaHawk Error: javax.faces.FacesException: java.io.NotSerializableException:
    - Parece que suele suceder cuando un commandbutton vuelve a la misma pagina que lo originó y se debe actualizar otro componente.
    Causas Probables:

  • La clase a poner en la tabla en sus columnas DEBE ser serializable, usar una clase auxiliar que lo sea si la original no puede serlo.

  • El método para guardar el estado debe ser CLIENTE. En web.xml:

      
        javax.faces.STATE_SAVING_METHOD
        client
      
    




    Pues nada, a ver si os animáis y nos mandáis vuestros errores ;-)

    ACTUALIZACIÓN:
    Error: java.lang.IllegalStateException: No Factories configured for this Application - typically this is because a context listener is not setup in your web.xml.
    A typical config looks like this;

    org.apache.myfaces.webapp.StartupServletContextListener



    Causas Probables

  • Comprobar la sintaxis xml de faces-config.xml
  • 1 Respuesta a “JSF: Excepciones más comunes y errores frecuentes”


    1. 1 ANGEL

      soy un usuario nuevo en mac os x y he cometido un error el cual hace que al reiniciar mi mac book pro todo aquello que he personalizado vuelva al inicio , es decir, todo vualve desde cero una vez que reinicio mi mac. por favor alguien ayudeme. Creo que la causa fue por crear un user que ahora esta bloqueado.

    Añade un Comentario





    Close
    E-mail It