ne pouvait pas trouver d'Usine: javax.des visages.application.ApplicationFactory
Salut, je suis en train d'utiliser les technologies suivantes ensemble:
- JSF 2.1.0
- ICEFaces 2.0.2 qui selon leur documentation, fonctionne très bien avec JSF 2.1.x
- Tomcat 6
mon web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>appName</display-name>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:META-INF/spring/applicationContext.xml
</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<welcome-file-list>
<welcome-file>/</welcome-file>
</welcome-file-list>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
<context-param>
<param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
<servlet>
<servlet-name>Resource Servlet</servlet-name>
<servlet-class>com.icesoft.faces.webapp.CompatResourceServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Resource Servlet</servlet-name>
<url-pattern>/xmlhttp/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
</web-app>
mais lorsque j'essaie d'exécuter mon application, j'ai eu l'exception suivante:
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:815)
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:317)
at com.sun.faces.config.InitFacesContext.getApplication(InitFacesContext.java:112)
at com.sun.faces.config.ConfigureListener.contextDestroyed(ConfigureListener.java:329)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4245)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4886)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4750)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
des idées pourquoi ?
OriginalL'auteur Mahmoud Saleh | 2011-10-31
Vous devez vous connecter pour publier un commentaire.
JSF 2.1 nécessite une Servlet 3.0 compatible conteneur, encore Tomcat 6 n'est qu'une Servlet 2.5 compatible conteneur. Vous avez 2 options:
web.xml
racine déclaration conforme Servlet 3.0).Si vous choisissez l'option 2 (mise à niveau vers Tomcat 7.0), alors vous devez mettre à niveau Mojarra 2.1.0 à au moins Mojarra 2.1.1 (c'est actuellement déjà 2.1.3). Cela est nécessaire parce que Mojarra 2.1.0 contient un bug dans les annotations de scanner qui le rend incompatible avec Tomcat et Jetty.
Voir aussi:
De nouvelles fonctionnalités, vérifiez ceci: javaserverfaces.java.net/nonav/rlnotes/2.1.0/whatsnew.html quant à la stabilité, à la fois des dernières versions stables.
OriginalL'auteur BalusC
J'ai résolu ce problème en utilisant deux approches :
1.Deux version différente de l'aci ont été supprimés (par exemple. jsf 1.x ou jsf2.x) ou deux jsf mise en œuvre ont été supprimés (mojarra jsf ou myfaces) de projet .Et j'ai utilisé une seule mise en œuvre soit mojarra (ou myfaces) mais pas les deux .J'avais fait de même dans le cas du jsf version différente des pots (j'.e jsf 2.x pots ont été utilisés)pas jsf 1.x.
2.Supprimer @ManagedBean d'annotation à partir d'interfaces.
OriginalL'auteur ashu17188