Приложение Spring Webflow + Primefaces, Fileupload не работает, Ошибка HTTP и / или Ошибка ввода-вывода - PullRequest
1 голос
/ 14 декабря 2010

мы разрабатываем весеннее веб-приложение JSF и пытаемся использовать виджет primefaces fileupload . Primefaces работает нормально, виджеты отображаются правильно. Однако загрузка файла не работает. функция handlefileupload в бэк-бине FileUploadController никогда не вызывается. другие основные компоненты, например кнопка, могут вызывать функции в этом компоненте, поэтому он инициализируется правильно. ниже вы найдете нашу конфигурацию. В настоящее время мы разрабатываем Eclipse, разворачиваем веб-приложение с Maven и запускаем приложение с сервера Jetty непосредственно в Eclipse. развертывание .war на tomcat тоже не сработало.

Проблема:

  • после выбора файла и нажатия на кнопку загрузки виджет выдает ошибку «Ошибка ввода-вывода» или «Ошибка HTTP»
  • некоторые данные передаются на сервер (мы прослушали сетевой трафик)
  • Функция handlefileupload () в backingbean FileUploadController никогда не вызывается

1017 * Зависимость *

  • org.primefaces 2.2.RC2
  • org.springframework.webflow, webflow и лица 2.2.1.RELEASE
  • commons-fileupload 1.2.2
  • commons-io 2.0
  • com.sun.faces, API и Impl 2.0.3
  • org.springframework.security

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>

start.xhtml

      <h:form id="mainForm" enctype="multipart/form-data" prependid="false" > 
       <p:fileUpload id="fileUp" fileUploadListener="#fileUploadController.handleFileUpload}"   
    description="Images" /></h:form> 

FileUploadController.java

 public void handleFileUpload(FileUploadEvent event) {  
  System.out.println("FileUpload Test");

     FacesMessage msg = new FacesMessage("ok", event.getFile().getFileName() + " is uploaded.");  
     FacesContext.getCurrentInstance().addMessage(null, msg);  
 }

бобы-config.xml

<bean id="fileUploadController" class="de.hsrm.mi.media.FileUploadController" scope="session"></bean>

Заранее спасибо. Мы надеемся, что кто-то может помочь нам:)

Ответы [ 2 ]

2 голосов
/ 12 сентября 2011

используйте этот фильтр вместо

<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>Spring MVC Dispatcher Servlet</servlet-name>
</filter-mapping>
0 голосов
/ 16 декабря 2010

Существует ошибка, или вы неправильно скопировали ее из xhtml-файла

<h:form id="mainForm" enctype="multipart/form-data" prependid="false" > 
       <p:fileUpload id="fileUp" fileUploadListener="#fileUploadController.handleFileUpload}"   
    description="Images" /></h:form>

"{" отсутствует перед "fileUploadController.handleFileUpload}" должно быть:

<h:form id="mainForm" enctype="multipart/form-data" prependid="false" > 
       <p:fileUpload id="fileUp" fileUploadListener="#{fileUploadController.handleFileUpload}"   
    description="Images" /></h:form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...