jsf-2 - JSF 文件上传过滤器的配置

标签 jsf-2 primefaces classnotfoundexception lifecycleexception

我正在尝试使用 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

这个过滤器的配置有用吗?如何正确配置?

最佳答案

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 中有此

关于jsf-2 - JSF 文件上传过滤器的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13359033/

相关文章:

jsf-2 - 在复合组件中获取正确的父 ID

jsf - @ViewScoped bean 在 JSF 中如何以及何时被销毁?

android - 在我的布局中添加 mapview 的 Classnotfoundexception

windows - event.getFile().getFileName() 在带有 PrimeFaces 3.5 的 JSF2.0 中返回具有完整路径的文件名

primefaces - 多列排序的惰性数据模型不起作用

PHP-Java 桥中的 java.lang.ClassNotFoundException

java - Android空白 Activity 上的ClassNotFoundException

javascript - reCaptchaV2 超时后禁用提交按钮

primefaces - 覆盖 Primefaces 渲染器

java - 如何在 jsf 中将 Primefaces galleria 与用户定义的对象一起使用