Действительно, HTTP-запрос может быть проанализирован только один раз. Клиент не будет отправлять его во второй раз, если вам нужно дважды проанализировать его. Ваша проблема указывает на то, что фильтр загрузки файла PrimeFaces по какой-то причине также вызывается для простого запроса JSP/Servlet и, таким образом, анализирует загрузку для JSF до того, как простой JSP/Servlet получит возможность проанализировать его для собственного использования. Этого не должно происходить.
Вам необходимо сопоставить фильтр загрузки файлов PrimeFaces только с запросами JSF, а не с простыми запросами JSP/Servlet. Обычно вы добиваетесь этого, сопоставляя его с FacesServlet
.
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
(<servlet-name>
должно быть точно таким же значением, которое использовалось в <servlet>
определении класса FacesServlet
; очевидно, что <filter-name>
точно такое же значение, которое использовалось в <filter>
определении класса фильтра загрузки файлов)
Или, если этот старый подход загрузки файлов JSP/Servlet использовался прямо на странице JSF по какой-то неочевидной причине, вам необходимо сопоставить фильтр загрузки файлов PrimeFaces с более конкретным шаблоном URL, охватывающим только страницы, содержащие компонент загрузки файлов PrimeFaces. .
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<url-pattern>/upload.xhtml</url-pattern>
</filter-mapping>
(если вы сопоставили FacesServlet
, например, с *.jsf
вместо *.xhtml
, вам, очевидно, следует изменить шаблон URL на /upload.jsf
)
Обратите внимание, что вы можете указать несколько записей <url-pattern>
в одном отображении фильтра, что полезно в случае, если у вас есть несколько страниц, содержащих компонент загрузки файлов PrimeFaces.
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<url-pattern>/upload1.xhtml</url-pattern>
<url-pattern>/upload2.xhtml</url-pattern>
<url-pattern>/upload3.xhtml</url-pattern>
</filter-mapping>
person
BalusC
schedule
24.12.2012