java.lang.ClassNotFoundException:javax.faces.application.ApplicationFactory

java.lang.ClassNotFoundException:javax.faces.application.ApplicationFactory,java,jsf-2,tomcat7,Java,Jsf 2,Tomcat7,我正在使用JSF2编写一个web应用程序。我已经下载了mojarra-2.1.3-FCS-binary.zip和myfaces-core-assembly-2.1.3-bin.zip,对于每个库,我都会遇到以下异常: java.lang.NoClassDefFoundError: javax/faces/application/ApplicationFactory at java.lang.ClassLoader.defineClass1(Native Method) at ja

我正在使用JSF2编写一个web应用程序。我已经下载了mojarra-2.1.3-FCS-binary.zip和myfaces-core-assembly-2.1.3-bin.zip,对于每个库,我都会遇到以下异常:

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
对于Mojara,我将
javax.faces.jar
包含在
WEB-INF/lib
文件夹中,对于MyFaces,我将jar替换为以下内容:MyFaces-api-2.1.3.jar、MyFaces-bundle-2.1.3.jar、MyFaces-impl-2.1.3.jar

我已经包括了jstl-api-1.2.jar以及jstl-impl-1.2.jar

ApplicationFactory
可以在这些jar中找到。在这些情况下,JSF有什么问题


我正在使用Tomcat 7运行我的web应用程序。

此异常表明Mojarra API是从服务器专用类加载器加载的,而Mojarra/MyFaces impl是从webapp专用类加载器加载的。从
Tomcat/lib
JRE/lib
JRE/lib/ext
和/或Tomcat公共lib中删除mojara jar,并最终删除webapp运行时类路径中除
/WEB-INF/lib

以外的所有位置,您是否尝试在“/apache-Tomcat-7/lib”下查找库,问题中提到的JAR包含类。但是,当您运行应用程序时,它不会“注册”。我仔细检查了一下,
javax.faces.jar
只在我的
WEB-INF
文件夹中找到。我正在运行Tomcat7.0.20。
jsfapi.jar
javaee.jar
?想一想,在
web.xml
中是否有任何JSF特定/相关的
?您的
web.xml
根声明设置为什么Servlet版本?jboss seam.jar是否与冲突有关?
jsf api.jar
javaee.jar
在任何“系统”
lib
文件夹中都找不到,Serlvet版本为3.0。我还没有指定任何侦听器。找到了。似乎
jbossseam.jar
与我的应用程序产生了冲突。谢谢你,巴卢斯克。