2

我的 Facelet 中有以下代码:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:form>
        <h:panelGrid columns="1">
            <rich:paint2D id="painter" width="300" height="120"
                data="#{paintData}" format="png" paint="#{paintBean.paint}" >
            </rich:paint2D>
            <h:panelGroup> 
                <h:outputText value="Change text color " />
                <rich:colorPicker colorMode="hex" value="#{paintData.color}">
                    <a4j:support event="onchange" reRender="painter"/>
                </rich:colorPicker>
            </h:panelGroup>
        </h:panelGrid>
    </h:form>
</html>

我的/lib文件夹中有以下罐子:

  1. richfaces-api-3.3.3.Final.jar
  2. richfaces-ui-3.3.3.Final.jar
  3. richfaces-impl-3.3.3.Final.jar

在 UI 中,我收到以下消息:

警告:此页面调用 XML 命名空间http://richfaces.org/rich声明,前缀为rich,但该命名空间不存在标记库。

在控制台中,我得到了以下异常:

SEVERE: Error configuring application listener of class com.sun.faces.config.ConfigureListener
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener

这是如何引起的,我该如何解决?

4

1 回答 1

2
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener

运行时类路径中缺少 JSF 实现本身。您似乎已经明确配置了

<listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>

在您web.xml没有安装Mojarra的情况下。

下载并安装 Mojarra。旧版本由文件组成,jsf-api.jarjsf-impl.jar新版本(自 2.0.9/2.1.6 起)由单个javax.faces.jar文件组成。请注意,RichFaces 3.x 实现默认不兼容 JSF 2.x。您需要有一个 JSF 2.x 兼容的构建richfaces-impl-jsf2-3.3.3.Final.jar。另请参阅有关该主题的 JBoss Wiki

于 2013-02-07T11:33:10.680 回答