java.lang.ClassNotFoundException: javax.des visages.application.ApplicationFactory
Je suis en train d'écrire une application web en utilisant JSF 2. J'ai téléchargé mojarra-2.1.3-FCS-binary.zip et myfaces-core-assembly-2.1.3-bin.zip et, à chaque bibliothèque, je suis l'exception suivante:
java.lang.NoClassDefFoundError: javax/faces/application/ApplicationFactory
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1663)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:591)
at javax.faces.FactoryFinder.getImplementationInstance(FactoryFinder.java:482)
at javax.faces.FactoryFinder.access$400(FactoryFinder.java:138)
at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:959)
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:316)
at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:303)
at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:219)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:360)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: javax.faces.application.ApplicationFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 34 more
Pour Mojarra, j'ai inclus javax.faces.jar
dans WEB-INF/lib
dossier, et pour MyFaces, j'ai remplacer le bocal avec les éléments suivants: myfaces-api-2.1.3.jar, myfaces-bundle-2.1.3.jar, myfaces-impl-2.1.3.jar.
J'ai inclus jstl-api-1.2.jar ainsi que jstl-impl-1.2.jar.
Et ApplicationFactory
est trouvé dans ces pots. Quel est le problème avec la JSF dans ces instances?
Je suis en utilisant Tomcat 7 pour exécuter mon application web.
- Avez-vous essayé de localiser le Libaries sous "/apache-tomcat-7/lib" ?
- Lecker, les pots mentionné dans la question contient les classes. Il n'est pas "enregistrer" lorsque vous exécutez l'application si.
Vous devez vous connecter pour publier un commentaire.
Cette exception suggère que la Mojarra API a été chargé à partir du serveur dédié chargeur de classe, tandis que la Mojarra/MyFaces impl est chargé à partir de la webapp dédiée chargeur de classe. Supprimer la Mojarra Pots de
Tomcat/lib
,JRE/lib
,JRE/lib/ext
et/ou Tomcat commune lib et, finalement, toutes les endroits dans webapp d'exécution du classpath autres que/WEB-INF/lib
.javax.faces.jar
ne se trouve que dans monWEB-INF
dossier. Je suis en cours d'exécution de Tomcat 7.0.20.jsf-api.jar
?javaee.jar
? Venez pour penser à ce sujet, avez-vous de la JSF/spécifiques liées<listener>
dansweb.xml
? Ce Servlet est la version de votreweb.xml
racine de la déclaration prévue à l'?jboss-seam.jar
ont rien à voir avec le conflit?jsf-api.jar
,javaee.jar
n'est trouvé dans aucun "système"lib
dossiers et Serlvet version 3.0. et je n'ai pas de port d'écoute spécifiée encore.jboss-seam.jar
crée un conflit avec mon application. Grâce BalusC.