java.lang.NoClassDefFoundError:javax / faces / context / FacesContextFactory

用户名

所有类似的问题都无济于事,所以我创建了自己的问题:

我正在Eclipse中使用Maven创建一个JSF Webapp。为了对其进行测试,我将其作为具有war:war目标的Maven构建来运行,此方法可以正常运行。但是,当我将war文件部署到本地tomcat进行测试时,在启动过程中会收到以下错误消息:

SCHWERWIEGEND: Critical error during deployment:
java.lang.NoClassDefFoundError: javax/faces/context/FacesContextFactory
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:270)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:270)
        at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:618)
        at javax.faces.FactoryFinder.getImplementationInstance(FactoryFinder.java:509)
        at javax.faces.FactoryFinder.access$400(FactoryFinder.java:139)
        at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:993)
        at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:343)
        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:4939)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)

        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976)

        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1653)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: javax.faces.context.FacesContextFactory
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 39 more

我有以下依赖...

<dependencies>
  <dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-api</artifactId>
    <version>2.1.7</version>
  </dependency>
  <dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-impl</artifactId>
    <version>2.1.7</version>
  </dependency>
</dependencies>

和插件:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.1</version>
        <configuration>
            <source>1.6</source>
            <target>1.6</target>
        </configuration>
    </plugin>
    <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.3</version>
    </plugin>
</plugins>

如果您需要更多信息,请告诉我。谢谢!

BalusC

该问题表明您在运行时类路径中的其他位置有另一个JSF API库,该库由JRE或Tomcat本身而不是由Webapp加载。这样,Web应用程序提供的JSF impl库无法找到正确的API,从而导致出现此异常+跟踪。

换句话说,运行时类路径是脏的。清理它。摆脱随机放置在错误位置的JAR。其中包括Tomcat自己的/lib文件夹,JRE/lib/lib/ext文件夹。另一方面,如果您确保从未将JAR随机放置在webapp运行时类路径所覆盖的文件夹中,那么一切应该都很好。

另一个潜在的原因是您在webapp本身中提供了多个不同版本的JSF API库,但是此信息在当前形式的问题中不可见。浏览/WEB-INF/libMaven构建的WAR文件的文件夹必须提供线索。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

java.lang.IllegalStateException:找不到工厂javax.faces.context.FacesContextFactory的备份

来自分类Dev

java.lang.IllegalStateException:找不到工厂javax.faces.context.FacesContextFactory的备份

来自分类Dev

找不到工厂javax.faces.context.FacesContextFactory Weblogic的备份

来自分类Dev

Websphere异常:找不到工厂:javax.faces.context.FacesContextFactory

来自分类Dev

找不到工厂javax.faces.context.FacesContextFactory Weblogic的备份

来自分类Dev

javax.faces.context.FacesContextFactory。试图找到备份

来自分类Dev

使用JSF的Spring Boot;找不到工厂javax.faces.context.FacesContextFactory的备份

来自分类Dev

javax.faces.context.FacesContextFactory 在将 Undertow 嵌入 JSF 应用程序时出现异常

来自分类Dev

javax.faces.context.FacesContext.getAttributes(FacesContext.java:64)上的java.lang.StackOverflowError

来自分类Dev

javax.faces.context.ExternalContext.getClientWindow(ExternalContext.java:1500)上的java.lang.UnsupportedOperationException

来自分类Dev

java.lang.ClassNotFoundException:javax.faces.webapp.FacesServlet

来自分类Dev

java.lang.ClassNotFoundException:javax.faces.webapp.FacesServlet

来自分类Dev

java.lang.NoClassDefFoundError: javax/json/Json

来自分类Dev

java.lang.NoClassDefFoundError:javax / validation / ParameterNameProvider

来自分类Dev

java.lang.NoClassDefFoundError:javax / servlet / ServletContext

来自分类Dev

java.lang.NoClassDefFoundError:javax / wsdl / OperationType

来自分类Dev

com.sun.faces.context.PartialViewContextImpl.createPartialResponseWriter处的java.lang.NullPointerException

来自分类Dev

java.lang.IllegalStateException:找不到工厂javax.faces.application.ApplicationFactory的备份

来自分类Dev

<f:attribute name =“ id”>在javax.faces.component.UIComponent.setValueExpression处引发java.lang.IllegalArgumentException

来自分类Dev

OmniFaces 3.0 和 MyFaces 2.2.12 抛出 java.lang.NoSuchMethodError: javax.faces.application.ApplicationFactory

来自分类Dev

Gradle Eclipse JSF 项目 java.lang.ClassNotFoundException javax.faces.webapp.FacesServlet

来自分类Dev

Java Spring MVC-java.lang.NoClassDefFoundError:javax / servlet / ServletContext

来自分类Dev

java.lang.NoClassDefFoundError:org / springframework / context / support / ClassPathXmlApplicationContext

来自分类Dev

java.lang.NoClassDefFoundError:org / springframework / web / context / ContextCleanupListener问题

来自分类Dev

java.lang.NoClassDefFoundError:org / springframework / web / context / ContextCleanupListener问题

来自分类Dev

java.lang.ClassCastException:无法将javax.faces.component.StateHolderSaver强制转换为[Ljava.lang.Object;

来自分类Dev

java.lang.NoClassDefFoundError:javax / servlet / http / HttpServlet

来自分类Dev

java.lang.NoClassDefFoundError:javax / mail / MessagingException未解决

来自分类Dev

java.lang.NoClassDefFoundError:javax / mail / Address错误

Related 相关文章

  1. 1

    java.lang.IllegalStateException:找不到工厂javax.faces.context.FacesContextFactory的备份

  2. 2

    java.lang.IllegalStateException:找不到工厂javax.faces.context.FacesContextFactory的备份

  3. 3

    找不到工厂javax.faces.context.FacesContextFactory Weblogic的备份

  4. 4

    Websphere异常:找不到工厂:javax.faces.context.FacesContextFactory

  5. 5

    找不到工厂javax.faces.context.FacesContextFactory Weblogic的备份

  6. 6

    javax.faces.context.FacesContextFactory。试图找到备份

  7. 7

    使用JSF的Spring Boot;找不到工厂javax.faces.context.FacesContextFactory的备份

  8. 8

    javax.faces.context.FacesContextFactory 在将 Undertow 嵌入 JSF 应用程序时出现异常

  9. 9

    javax.faces.context.FacesContext.getAttributes(FacesContext.java:64)上的java.lang.StackOverflowError

  10. 10

    javax.faces.context.ExternalContext.getClientWindow(ExternalContext.java:1500)上的java.lang.UnsupportedOperationException

  11. 11

    java.lang.ClassNotFoundException:javax.faces.webapp.FacesServlet

  12. 12

    java.lang.ClassNotFoundException:javax.faces.webapp.FacesServlet

  13. 13

    java.lang.NoClassDefFoundError: javax/json/Json

  14. 14

    java.lang.NoClassDefFoundError:javax / validation / ParameterNameProvider

  15. 15

    java.lang.NoClassDefFoundError:javax / servlet / ServletContext

  16. 16

    java.lang.NoClassDefFoundError:javax / wsdl / OperationType

  17. 17

    com.sun.faces.context.PartialViewContextImpl.createPartialResponseWriter处的java.lang.NullPointerException

  18. 18

    java.lang.IllegalStateException:找不到工厂javax.faces.application.ApplicationFactory的备份

  19. 19

    <f:attribute name =“ id”>在javax.faces.component.UIComponent.setValueExpression处引发java.lang.IllegalArgumentException

  20. 20

    OmniFaces 3.0 和 MyFaces 2.2.12 抛出 java.lang.NoSuchMethodError: javax.faces.application.ApplicationFactory

  21. 21

    Gradle Eclipse JSF 项目 java.lang.ClassNotFoundException javax.faces.webapp.FacesServlet

  22. 22

    Java Spring MVC-java.lang.NoClassDefFoundError:javax / servlet / ServletContext

  23. 23

    java.lang.NoClassDefFoundError:org / springframework / context / support / ClassPathXmlApplicationContext

  24. 24

    java.lang.NoClassDefFoundError:org / springframework / web / context / ContextCleanupListener问题

  25. 25

    java.lang.NoClassDefFoundError:org / springframework / web / context / ContextCleanupListener问题

  26. 26

    java.lang.ClassCastException:无法将javax.faces.component.StateHolderSaver强制转换为[Ljava.lang.Object;

  27. 27

    java.lang.NoClassDefFoundError:javax / servlet / http / HttpServlet

  28. 28

    java.lang.NoClassDefFoundError:javax / mail / MessagingException未解决

  29. 29

    java.lang.NoClassDefFoundError:javax / mail / Address错误

热门标签

归档