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フォルダに次のjarファイルを持っています:

  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で、次のメッセージが表示されます。

警告:このページでは、プレフィックスrichで宣言されたXML名前空間http://richfaces.org/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>

Mojarraがインストールされてweb.xmlいないときに。

Mojarraをダウンロードしてインストールします。古いバージョンはファイルで構成されjsf-api.jarjsf-impl.jar新しいバージョン(2.0.9 / 2.1.6以降)は単一のjavax.faces.jarファイルで構成されます。RichFaces 3.xの実装は、デフォルトではJSF2.xと互換性がないことに注意してください。JSF2.x互換のビルドが必要ですrichfaces-impl-jsf2-3.3.3.Final.jarこの件については、JBossWikiも参照してください。

于 2013-02-07T11:33:10.680 に答える