java.lang.ClassCastException: 无法将 com.sun.faces.config.Faces



我有一个运行正常的maven项目(DWM3,Tomcat8)。我被告知使用 JSF 重新实现当前功能。

当前的 maven 依赖项是:

  • JSTL : 1.2
  • 质数:4.0 -新增>
  • javaee-api:7.0 ->
  • 新增
  • JSF-IMPL : 2.2.3 ->
  • 新增
  • JSF-API : 2.2.3 -> 新增

将 Eclipse IDE 与 WTP 3.6.0M6 结合使用。被告知我必须使用这些版本。

现在进入例外。我没有对我以前的工作代码(1 个 servlet)进行任何更改,如果我删除新添加的依赖项,异常就会消失,我的 web 应用程序会再次工作。

SEVERE: Failed to process JAR found at URL [/test] for ServletContainerInitializers for context with name [{1}]
java.io.IOException: java.lang.ClassCastException: Cannot cast com.sun.faces.config.FacesInitializer to javax.servlet.ServletContainerInitializer
    at org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:185)
    at org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:151)
    at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1597)
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1125)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:768)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:303)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5058)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1388)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassCastException: Cannot cast com.sun.faces.config.FacesInitializer to javax.servlet.ServletContainerInitializer
    at java.lang.Class.cast(Unknown Source)
    at org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:182)
    ... 15 more

所以我不确定导致此异常的依赖项冲突的来源在哪里

解决方案是:

a) 从 maven
中删除 javaee-api 依赖项b) 将 javaee-api 依赖范围设置为

相关内容

  • 没有找到相关文章

最新更新