Multiple upload primefaces 4.0

Boa noite pessoal,

estou utilizando o componente fileUpload do Primefaces 4.0 e JSF 2.2.4 + tomcat 7. estou tendo problemas no formulário que tem o fileUpload, mesmo eu não fazendo upload de nenhum arquivo, apenas salvando os dados do formulario ocorre o erro abaixo vou postar tb os trechos do .xhtml…

Alguem já passou por isso e pode me dar uma força. Obrigado

[code]<p:dialog id=“basicDialog1” header=“Basic Dialog” widgetVar=“dlg2” >

        <p:fileUpload fileUploadListener="#{imovel.handleFileUpload}" label="Procurar" uploadLabel="Enviar" cancelLabel="Cancelar" mode="advanced" dragDropSupport="true"  
                    multiple="true" update="messages1" sizeLimit="1000000" fileLimit="30" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
                 <p:growl id="messages1" showDetail="true"/>
                 <p:commandButton value="Salvar foto" icon="ui-icon-plus"
                action="#{imovel.salvaFoto()}" update="formImo" />
    </p:dialog> [/code]

[code]Nov 05, 2013 11:38:18 PM com.sun.faces.lifecycle.ApplyRequestValuesPhase execute
WARNING: javax.servlet.ServletException: org.apache.tomcat.util.http.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn’t contain a multipart/form-data or multipart/form-data stream, content type header is application/x-www-form-urlencoded; charset=UTF-8
javax.faces.FacesException: javax.servlet.ServletException: org.apache.tomcat.util.http.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn’t contain a multipart/form-data or multipart/form-data stream, content type header is application/x-www-form-urlencoded; charset=UTF-8
at org.primefaces.component.fileupload.NativeFileUploadDecoder.decode(NativeFileUploadDecoder.java:44)
at org.primefaces.component.fileupload.FileUploadRenderer.decode(FileUploadRenderer.java:44)
at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:831)
at javax.faces.component.UIInput.decode(UIInput.java:771)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1225)
at javax.faces.component.UIInput.processDecodes(UIInput.java:676)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220)
at org.primefaces.component.dialog.Dialog.processDecodes(Dialog.java:361)
at javax.faces.component.UIForm.processDecodes(UIForm.java:225)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:929)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at filters.AuthFilter.doFilter(AuthFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Caused by: javax.servlet.ServletException: org.apache.tomcat.util.http.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn’t contain a multipart/form-data or multipart/form-data stream, content type header is application/x-www-form-urlencoded; charset=UTF-8
at org.apache.catalina.connector.Request.parseParts(Request.java:2782)
at org.apache.catalina.connector.Request.getParts(Request.java:2640)
at org.apache.catalina.connector.Request.getPart(Request.java:2806)
at org.apache.catalina.connector.RequestFacade.getPart(RequestFacade.java:1082)
at org.primefaces.component.fileupload.NativeFileUploadDecoder.decodeAdvanced(NativeFileUploadDecoder.java:60)
at org.primefaces.component.fileupload.NativeFileUploadDecoder.decode(NativeFileUploadDecoder.java:37)
… 37 more
Caused by: org.apache.tomcat.util.http.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn’t contain a multipart/form-data or multipart/form-data stream, content type header is application/x-www-form-urlencoded; charset=UTF-8
at org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl.(FileUploadBase.java:806)
at org.apache.tomcat.util.http.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:261)
at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:285)
at org.apache.catalina.connector.Request.parseParts(Request.java:2722)
… 42 more

Nov 05, 2013 11:38:18 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
SEVERE: javax.servlet.ServletException: org.apache.tomcat.util.http.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn’t contain a multipart/form-data or multipart/form-data stream, content type header is application/x-www-form-urlencoded; charset=UTF-8
at org.apache.catalina.connector.Request.parseParts(Request.java:2782)
at org.apache.catalina.connector.Request.getParts(Request.java:2640)
at org.apache.catalina.connector.Request.getPart(Request.java:2806)
at org.apache.catalina.connector.RequestFacade.getPart(RequestFacade.java:1082)
at org.primefaces.component.fileupload.NativeFileUploadDecoder.decodeAdvanced(NativeFileUploadDecoder.java:60)
at org.primefaces.component.fileupload.NativeFileUploadDecoder.decode(NativeFileUploadDecoder.java:37)
at org.primefaces.component.fileupload.FileUploadRenderer.decode(FileUploadRenderer.java:44)
at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:831)
at javax.faces.component.UIInput.decode(UIInput.java:771)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1225)
at javax.faces.component.UIInput.processDecodes(UIInput.java:676)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220)
at org.primefaces.component.dialog.Dialog.processDecodes(Dialog.java:361)
at javax.faces.component.UIForm.processDecodes(UIForm.java:225)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:929)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at filters.AuthFilter.doFilter(AuthFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Caused by: org.apache.tomcat.util.http.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn’t contain a multipart/form-data or multipart/form-data stream, content type header is application/x-www-form-urlencoded; charset=UTF-8
at org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl.(FileUploadBase.java:806)
at org.apache.tomcat.util.http.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:261)
at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:285)
at org.apache.catalina.connector.Request.parseParts(Request.java:2722)
… 42 more
[/code]

Estou com o memso problema que você amigo.

Meus métodos funcionam normalmente quando utilizava o primefaces 3.5, porém para utilizar o fileUpload da versão 4.0 preciso informar o atributo enctype=“multipart/form-data” dentro do form, mas aí meus métodos de save, delete não funcionam mais, e recebo o mesmo erro que você.
Encontrei um pessoal falando sobre isso aqui: http://stackoverflow.com/questions/17204355/glassfish-4-jsf-2-2-and-primefaces-fileuploadevent-not-working-together

Precisei migrar para a versão 4 pois necessito de 2 componentes fileUpload no mesmo form, e ao fazer upload de um deles conflitava no preview do outro.

Detalhe que estou usando WildFly beta1 que utiliza a versão 2.2.3 do jsf deles e prettyfaces 3.3.3.

Meu log:

11:38:56,027 WARNING [javax.enterprise.resource.webcontainer.jsf.lifecycle] (default task-8) javax.servlet.ServletException: UT010016: Not a multi part request: javax.faces.FacesException: javax.servlet.ServletException: UT010016: Not a multi part request
	at org.primefaces.component.fileupload.NativeFileUploadDecoder.decode(NativeFileUploadDecoder.java:44) [primefaces-4.0.jar:4.0]
	at org.primefaces.component.fileupload.FileUploadRenderer.decode(FileUploadRenderer.java:44) [primefaces-4.0.jar:4.0]
	at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:831) [jboss-jsf-api_2.2_spec-2.2.3.jar:2.2.3]
	at javax.faces.component.UIInput.decode(UIInput.java:771) [jboss-jsf-api_2.2_spec-2.2.3.jar:2.2.3]
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1225) [jboss-jsf-api_2.2_spec-2.2.3.jar:2.2.3]
	at javax.faces.component.UIInput.processDecodes(UIInput.java:676) [jboss-jsf-api_2.2_spec-2.2.3.jar:2.2.3]
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220) [jboss-jsf-api_2.2_spec-2.2.3.jar:2.2.3]
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220) [jboss-jsf-api_2.2_spec-2.2.3.jar:2.2.3]
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220) [jboss-jsf-api_2.2_spec-2.2.3.jar:2.2.3]
	at org.primefaces.component.dialog.Dialog.processDecodes(Dialog.java:361) [primefaces-4.0.jar:4.0]
	at javax.faces.component.UIForm.processDecodes(UIForm.java:225) [jboss-jsf-api_2.2_spec-2.2.3.jar:2.2.3]
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220) [jboss-jsf-api_2.2_spec-2.2.3.jar:2.2.3]
	at org.primefaces.util.ComponentUtils.processDecodesOfFacetsAndChilds(ComponentUtils.java:414) [primefaces-4.0.jar:4.0]
	at org.primefaces.component.tabview.TabView.processDecodes(TabView.java:325) [primefaces-4.0.jar:4.0]
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220) [jboss-jsf-api_2.2_spec-2.2.3.jar:2.2.3]
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1220) [jboss-jsf-api_2.2_spec-2.2.3.jar:2.2.3]
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:929) [jboss-jsf-api_2.2_spec-2.2.3.jar:2.2.3]
	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) [jsf-impl-2.2.3-jbossorg-1.jar:]
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.2.3-jbossorg-1.jar:]

Olá Leonard, tudo bem?

Também tive o mesmo problema.

Encontrei a solução nesse link, espero que ajude:
http://stackoverflow.com/questions/19262356/file-upload-doesnt-work-with-ajax-in-primefaces-4-0-running-on-jsf-2-2-x

Sinto que esse erro está mais relacionado ao p:commandButton do Primefaces do que com o componente p:fileUpload. Espero que seja corrigido nas próximas versões.
Por enquanto, experimente utilizar o h:commandButton ao inves do p:commandButton:

<h:commandLink actionListener="#{projectItemController.save}"> #{msg['customForm.save']} <f:ajax execute="formNewProject" render="formNewProject :NOTIFICATION_BAR"/> </h:commandLink>

Abracos,