Это может иметь следующие причины:
Атрибут enctype="multipart/form-data"
отсутствует в <h:form>
. Это обязательно для возможности отправки файлов на сервер.
ExtensionsFilter
отсутствует в web.xml
или неправильно отображается на имя сервлета FacesServlet
. Это обязательно для того, чтобы можно было проанализировать запрос multipart/form-data
.
В цепочке запрос-ответ есть еще один фильтр до ExtensionsFilter
, который уже предварительно проанализировал запрос multipart / form-data. Например, когда вы используете RichFaces4, такой фильтр будет загружен автоматически, без необходимости указывать его в web.xml
. Тела запроса могут быть проанализированы только один раз, поэтому ExtensionsFilter
получит пустой запрос после такого другого фильтра.
Существует еще один фильтр в цепочке запрос-ответ до ExtensionsFilter
, который полностью пропустил ExtensionsFilter
, например, перенаправив или перенаправив запрос.