java.lang.ClassCastException: com.sun.facelets.component.RepeatRenderer 无法转换为 javax.faces.render.Renderer

java.lang.ClassCastException: com.sun.facelets.component.RepeatRenderer cannot be cast to javax.faces.render.Renderer

尝试了很多方法,但我仍然得到 "java.lang.ClassCastException: com.sun.facelets.component.RepeatRenderer cannot be cast to javax.faces.render.Rendere"

下面是代码 web.xml

 <?xml version="1.0" encoding="UTF-8"?>
 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>something</display-name>
<welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
</welcome-file-list>



<context-param>
    <description />
    <param-name>javax.faces.CONFIG_FILES</param-name>
    <param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>

<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>


<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>*.jsf</url-pattern>
</servlet-mapping>
</web-app>

faces.xml

   <?xml version="1.0" encoding="UTF-8"?>
<faces-config
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-facesconfig_2_0.xsd"
version="2.0">
 <managed-bean>
    <managed-bean-name>zendeskVoiceDashboard</managed-bean-name>
    <managed-bean-class>com.tn.gov.zendesk.ZendeskVoiceDashboard</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>        
</managed-bean>
 </faces-config>

Jar 已用

activation-1.1
antlr-2.7.7
c3p0-0.9.1.1
commons-collections-3.2
commons-io-2.4
commons-logging-1.1.1
commons-pool-1.5.3
dom4j-1.6.1
hibernate-annotations
hibernate-commons-annotations-4.0.4.Final
 hibernate-core-4.3.1.Final
 hibernate-entitymanager-4.3.1.Final
 hibernate-jpa-2.0-api-1.0.1.Final
javassist-3.18.1-GA
 javax.json-1.0
 jsf-api
 jsf-impl
 json-20090211
 jstl-1.2
  jta-1.1
  jxl-2.6.12
  log4j-1.2.16
  mail-1.4
  netty-3.9.2.Final
   ojdbc6
  org-apache-commons-codec
   primefaces-3.4
   quartz-2.2.1
    slf4j-simple-1.6.1

com.sun.facelets.* 包标识 Facelets 1.x,这是一个遗留的独立库,旨在取代遗留 JSF 1.x 中的 JSP。由于 JSF 2.x,Facelets 在 jsf-impl.jar 中的 com.sun.faces.facelets.* 包中被重新打包为 JSF 实现的一部分(自 Mojarra 2.1.6 javax.faces.jar)。

不幸的是,您完全遗漏了通常包含更多线索的堆栈跟踪,但前提是您确实确实在使用 JSF 2.x,如您的 faces-config.xml 根声明所示,那么这只能意味着您的运行时类路径被 Facelets 1.x 库污染,通常命名为 facelets.jar

如果你删除它,这个问题应该会消失。它没有列在您的 JAR 列表中,但异常另有说明。