He incluido este en mi índice.de jsp, JSF archivo:

<%@ taglib prefix="ui" uri="http://java.sun.com/jsf/facelets"%>

y Eclipse subraya la URL, flotando da esto:

Cannot find the tag library descriptor for "http://java.sun.com/jsf/facelets"

La implementación y tratando de arrancar el Tomcat 6 usando el plugin de Tomcat que provoca esto:

|STDOUT| 2010-03-03 17:57:29,872 | INFO  | [main]: Serialization provider : class org.apache.myfaces.shared_impl.util.serial.DefaultSerialFactory
    |STDOUT| 2010-03-03 17:57:29,904 | INFO  | [main]: ServletContext 'C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\myapp\' initialized.
    |STDOUT| 2010-03-03 17:57:29,904 | INFO  | [main]: Checking for plugins:org.apache.myfaces.FACES_INIT_PLUGINS
    03-Mar-2010 17:57:29 org.apache.catalina.core.StandardContext start
    SEVERE: Error listenerStart
    03-Mar-2010 17:57:29 org.apache.catalina.core.StandardContext start
    SEVERE: Context [/myapp] startup failed due to previous errors

03-Mar-2010 17:57:30 com.sun.faces.config.ConfigureListener contextDestroyed
SEVERE: Unexpected exception when attempting to tear down the Mojarra runtime
java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.application.ApplicationFactory
    at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:804)

Mi web.xml contiene este

<listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>

Mi face-config.xml contiene este

    <application>
    <!-- tell JSF to use Facelets -->
    <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
</application>

Y mi generación de aplicaciones tiene la última JSF 2.0.2 jsf-api.jar y jsf-impl.jar. Yo también tengo MyFaces 1.2.8 y todas las últimas commons frascos. La app fue la construcción de la multa hasta que he actualizado JSF. Yo por lo menos esperar un error de tiempo de ejecución, pero aquí Eclipse no se puede ver el taglib. ¿Qué otra cosa podría estar faltando?

EDITAR

Para obtener toda la información – saqué la Mojarra y la izquierda en Myfaces. Esto significaba que necesitaba para quitar esto de mi web.xml:

<listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener> 

y reemplazarlo con el equivalente de myfaces:

<listener>
  <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>

Gracias

  • Usted puede mezclar varias implementaciones de la especificación abstracta. El uso de cualquiera de Mojarra O MyFaces como una implementación de la especificación de JSF. Luego están las bibliotecas de componentes JSF como RichFaces, Tomahawk, etc..etc.. que sólo se puede seguir utilizando en la parte superior de una de las implementaciones de JSF. Bozho tiene derecho.
  • Gracias de nuevo BalusC.
InformationsquelleAutor volvox | 2010-03-03

2 Comentarios

  1. 6

    No mezclar con JSF JSF 2.0 pre-2.0. Esto puede conducir a resultados inesperados (como la de arriba).

    Elegir una JSF 2.0 de la aplicación (mojarra como parece) y eliminar todas myfaces y facelets bibliotecas.

    • Bozho, de hecho, he utilizado myFaces, pero tienes razón y que mi desarrollo ingenuidad de nuevo. He aprendido mucho de usted y BalusC en el último mes – muchas gracias, de hecho los chicos.
    • ¿estás seguro de que facelets tiene que ser eliminado así? Como tengo entendido JSF RI (Mojarra) no tiene nada que ver con Facelets.. Que son independientes de las bibliotecas.
    • JSF 2.0 ha facelets por defecto. Véase Mark Lewis respuesta. Para JSF 1.2 estás en lo correcto – facelets es necesario separar en un frasco.
    • hm… En mi caso, pueden trabajar: pom.xml
    • suerte classloading ? 🙂 Prueba a quitar la facelets frasco.
    • trató de: java.lang.ClassNotFoundException: com.sun.facelets.FaceletViewHandler
    • quitar el controlador de faces-config.xml
    • ahora tengo otro problema en JSFUnit: java.lang.NullPointerException en getCurrentViewID() (línea 30).
    • podría ser un JSFUnit problema. Si la aplicación se ejecuta correctamente, a excepción de JSFUnit.
    • Sí, funciona bien fuera de JSFUnit poder del contenedor… Ok, voy a investigar más a fondo. Pero con el consentimiento explícito facelets de dependencia (como es ahora) todo funciona bien.
    • El problema era que mi faces-config.xml fue de JSF 1.2 (de acuerdo a su DTD), pero no se especifica el Facelets controlador. Me fijo en el encabezado de XML, y se retira facelets dependencia de pom.xml. Funciona perfectamente ahora. Bozho, gracias! 🙂

  2. 1

    Bueno, eso es molesto. He leído en un par de lugares a los que la nueva Mojarra liberación incrustado facelets. He añadido jsf-facelets-1.1.14.jar a mi build y se implementa aceptar.

Dejar respuesta

Please enter your comment!
Please enter your name here