2017-05-09 17 views
1

私のコードには、私のprimeFaces fileUploadが追加されていて、webLogic 12.2サーバーでうまくいきました。しかし、サーバーをwildFly 10.0.1に変更したとき、fileUpload Listenerはもう呼び出されません。この理由を調査し、無駄なくこの問題を調査しました。 web.xmlのプライムフェイスfileUploadリスナーはwildflyサーバーでは呼び出されません

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

でフィルタされており、それは私が中2つのjarファイルを追加しました。また

public void handleFileUpload(FileUploadEvent event) { 
    // do something 
} 

リスナー関数にある私のXHTMLコード

<p:column headerText="#{msgs.label_uploadFile}" > 
    <p:fileUpload id="upload" label="#{msgs.label_uploadFile}" 
    fileUploadListener="#{attachmentsInquiryBean.handleFileUpload}" 
    mode="advanced" auto="true"/> 
</p:column> 

ある

私のwWEB-INF/libフォルダ:

コモンズ・ファイルアップロード-1.3.jar

コモンズ-IO-2.4.jarここ

答えて

0

はprimefacesを使用してファイルをアップロードする方法の一例であり、あなたはコモンズ・ファイルアップロード-1.3.1.jarを必要としませんおよびcommons-io-2.4.jar;

import javax.faces.application.FacesMessage; 
import javax.faces.bean.ManagedBean; 
import javax.faces.context.FacesContext; 
import org.primefaces.model.UploadedFile; 
@ManagedBean 
public class FileUploadView { 
    private UploadedFile file; 
    public UploadedFile getFile() { 
     return file; 
    } 
    public void setFile(UploadedFile file) { 
     this.file = file; 
    } 
    public void upload() { 
     if(file.getSize() > 0) { 
      FacesMessage message = new FacesMessage("Succesful", file.getFileName() + " is uploaded."); 
      FacesContext.getCurrentInstance().addMessage(null, message); 
     } 
else{ 
    FacesMessage message = new FacesMessage("Not Succesful", "file is not uploaded"); 
      FacesContext.getCurrentInstance().addMessage(null, message); 
} 
    } 
} 

XHTMLコード:

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://xmlns.jcp.org/jsf/html" 
     xmlns:p="http://primefaces.org/ui"> 
    <h:head> 
     <title>Facelet Title</title> 
    </h:head> 
    <h:body> 
<h:form enctype="multipart/form-data"> 
    <p:growl id="messages" showDetail="true" /> 

    <p:fileUpload value="#{fileUploadView.file}" mode="simple" skinSimple="true"/> 

    <p:commandButton value="Submit" ajax="false" actionListener="#{fileUploadView.upload}" /> 
</h:form> 
    </h:body> 
</html> 
+0

あなたの行動をありがとうが、まだactionListener関数は呼び出されていません。このコードはweblogicではうまく動作しますが、wildFlyサーバーではうまく動作しません。 – Esraa

0

私はWildflyで同じことを見てきたより多くの情報がこのHow to upload file in primefaces

Javaコードを参照するためにも、あなたは、web.xmlのを変更する必要はありません10.xとPF 6.1。

WildflyでのfileUpload.getFileUploadListener() is nullのメソッド式。

私の回避策は、FileUploadコンポーネントでバインディングを使用し、有効なメソッド式を手動で設定することです。

関連する問題