2012-04-27 112 views
0

我有使用PrimeFaces上傳文件的問題。我在StackOverflow上瀏覽過這篇文章,但沒有發現任何有用的東西。奇怪的是,我昨天做了它的工作,但我現在開始我的服務器,它已經工作了。當我嘗試訪問上傳的文件時,它給了我NPE。PrimeFaces文件上傳停止工作

所以,我下載的commons-文件上傳-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> 

我相信我有我的進口權,還有一個setter for projectFile字段,所以我真的不知道哪裏可能是問題。我使用PrimeFaces v 3.01

感謝您的幫助

回答

0

我找到了解決辦法,事情是,Glassfish的出於某種原因沒有部署Apache庫,所以我刪除他們的classpath,再次並將其添加他們神奇的作品:-)

所以也許它會幫助某人:)