Pregunta

I incluyó esto en mi archivo index.jsp JSF:

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

y Eclipse subraya la URL, que asoma da esto:

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

Despliegue y tratar de arrancar Tomcat 6 usando el plugin Tomcat hace 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 cara config.xml contiene este

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

Y mi solicitud de construcción tiene la última JSF JSF-2.0.2 api.jar y JSF-impl.jar. También tengo MyFaces 1.2.8 y todas las últimas Commons frascos. La aplicación fue construyendo bien hasta que he actualizado JSF. Yo al menos esperar un error de tiempo de ejecución pero aquí Eclipse no puedo ver el taglib. ¿Qué otra cosa podía hacer falta?

Editar

Para obtener información completa - Saqué Mojarra y se deja en MyFaces. Esto significaba que tenía que quitar esto de mi web.xml:

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

y sustituirlo por el equivalente de MyFaces:

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

Gracias

¿Fue útil?

Solución

No mezcle JSF 2.0 con JSF pre-2.0. Todo ello puede conducir a resultados inesperados (como la de arriba).

Elija una aplicación JSF 2.0 (mojarra como parece) y retire todos los MyFaces y bibliotecas facelets.

Otros consejos

Bueno, eso es molesto. He leído en un par de lugares que el nuevo facelets liberación incrustado Mojarra. Añadí jsf-facelets-1.1.14.jar a mi construcción y desplegó bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top