PrimeFaces文件上传停止工作

时间:2012-04-27 20:28:43

标签: jsf file-upload primefaces

我使用PrimeFaces上传文件时遇到问题。我在StackOverflow上找到了老帖子,但没有找到任何有用的东西。奇怪的是,我昨天让它工作了,但我现在启动了我的服务器,它已经工作了。当我尝试访问上传的文件时,它给了我NPE。

所以我下载了commons-fileupload-1.2.2.jar和commons-io-1.4,将它们放在我的类路径中,像这样配置我的web.xml

 <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>

我在xhtml页面中的表单包含一个带描述的字段,一个组合框和一个字段上传元素

 <h:form enctype="multipart/form-data">
            <p:panel header="#{submitProjectPage['header']}">
                <h:panelGrid columns="2">
                    #{submitProjectPage['chooseProject']}
                    <p:selectOneMenu value="#{submitProjectBean.project}" converter="projectConverter">
                        <f:selectItems value="#{submitProjectBean.studentsProjects}" />
                    </p:selectOneMenu>

最后我的bean是RequestScoped并且有这个方法

private UploadedFile projectFile;

public void submitProject(ActionEvent event) {//also tried without parameter
    project.setFile(projectFile.getContents());
    project.setStatus(StatusEnum.DELIVERED);
    daoBean.update(project);
}
                    #{submitProjectPage['submitInformation']}
                    <p:inputTextarea rows="10" value="#{submitProjectBean.s}"/>
                    #{submitProjectPage['file']}
                    <p:fileUpload value="#{submitProjectBean.projectFile}" mode="simple" />

                    <p:commandButton ajax="false" value="#{submitProjectPage['submit']}" 
                                    actionListener="#{submitProjectBean.submitProject}" />
                </h:panelGrid>
            </p:panel>

我确信我的导入正确,还有一个projectFile字段的setter,所以我真的不知道问题出在哪里。我正在使用PrimeFaces v 3.01

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,问题是Glassfish由于某种原因没有部署apache库,所以我从classpath中删除它们,再次添加它们并且神奇地工作: - )

所以也许它会帮助某人:)