JSF 2.2 - fileupload não funciona com o Ajax. O formulário parece ter um enctype incorreto (somente via AJAX)
Tentando implementar o exemplo do JSF 2.2, eu tenho o seguinte código:
<h:form prependId="false" enctype="multipart/form-data">
<!-- Now it's the AJAX file upload component -->
<h:inputFile id="fileUpload" value="#{someBean.file}" >
<f:ajax />
</h:inputFile>
<h:commandButton value="Upload" />
</h:form>
De acordo com alguns JSF 2.2 isso deve funcionar, mas no meu caso está me dando o seguinte erro:
o pedido não contém multipart / form-data ou multipart / mixed stream, o cabeçalho do tipo de conteúdo é application / x-www-form-url codificado; charset = UTF-8
Examinando a solicitação, embora eu tenha definido corretamente o meu formulário, o pedido parcial submete:
Tipo de conteúdo: aplicativo / x-www-form-urlencoded; charset = UTF-8 Faces-Request: parcial / ajax
Observe que o web.xml também foi modificado para:
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<multipart-config>
<location>c:\dotmp</location>
<max-file-size>20848820</max-file-size>
<max-request-size>418018841</max-request-size>
<file-size-threshold>1048576</file-size-threshold>
</multipart-config>
</servlet>
Eu estou usando Mojarra 2.2.0-m15 mas tentei isso com versões anteriores também. Alguém sabe alguma informação útil sobre este problema, que eu assumo é um bug?