1

코드에 primeFaces fileUpload를 추가했으며 webLogic 12.2 서버에서 정상적으로 작동했습니다. 그러나 서버를 wildFly 10.0.1로 변경하면 fileUpload Listener가 더 이상 호출되지 않습니다. 이유와 유용성없이이 문제를 검색했습니다. web.xml에Primefaces fileUpload Listener가 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> 

의 필터입니다 그리고 내가 두 단지를 추가 또한

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

내가 제이보스에서 같은 본 적이 있으며이 How to upload file in primefaces

자바 코드를 참조 자세한 내용은 web.xml을 변경할 필요가 없습니다 10.x와 PF 6.1.

Wildfly에서 fileUpload.getFileUploadListener() is null의 메서드 식입니다.

제 해결 방법은 FileUpload 구성 요소에 바인딩을 사용하고 유효한 메서드 식을 수동으로 설정하는 것입니다.

관련 문제