4

fileUploadコンポーネントを使用しようとしています。Primefacesユーザーガイドを読んでいるので、fileUploadフィルターを構成する必要があります。

<filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <filter-class>
        org.primefaces.webapp.filter.FileUploadFilter
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

これらの行(ガイドが推奨)をweb.xmlファイルに追加しました。

これで、サーバー(Tomcat 7)の起動時に例外が発生し、サーバーの起動に失敗します。スタックトレースの一部を投稿します。

GRAVE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/webApp]]
at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
at...
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory
at....
Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory

このフィルターの構成は役に立ちますか?どうすれば正しく設定できますか?

4

1 に答える 1

14

PrimeFaces ユーザー ガイド (14 ページ) には、次の必要な依存関係がリストされていますp:fileUpload

最初の依存関係が欠落しているようです。

これらのファイルをダウンロードして配置する/WEB-INF/libか、プロジェクトが Maven プロジェクトの場合は、次の依存関係をpom.xml,<dependencies>セクションに追加します。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.3.2</version>
</dependency>
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.2.2</version>
</dependency>

バージョンは異なる場合があります。現在、pom.xml にこれがあります。

于 2012-11-13T11:18:16.680 に答える