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 列表中,但异常另有说明。
尝试了很多方法,但我仍然得到 "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 列表中,但异常另有说明。