2016-03-29 3 views
1

У меня есть файл web.xml с двумя фильтрами PrimeFaces FileUpload Filter & loggedInFilter. Если я комментирую loggedInFilter, тогда фильтр FileUpload работает отлично. & Запущен FileUploadEvent. Incase У меня есть оба фильтра в web.xml, тогда FileUpoadFilter не запускается. Ниже мой web.xmlPrimefaces FileUpload Событие не запускается, если в web.xml есть несколько фильтров

<context-param> 
     <param-name>primefaces.UPLOADER</param-name> 
     <param-value>commons</param-value> 
    </context-param> 

<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> 

<filter> 
    <filter-name>loggedInFilter</filter-name> 
    <filter-class>com.web.filter.loggedInFilter</filter-class>  
</filter> 
<filter-mapping> 
    <filter-name>loggedInFilter</filter-name> 
    <servlet-name>*.xhtml</servlet-name> 
</filter-mapping> 

Я попытался включить диспетчер также в PrimeFaces FileUpload фильтр фильтр-отображении, так как другой фильтр, т.е. loggedInFilter в приложении выполняется перед фильтром загрузки в PrimeFaces файл, но это не помогает.

<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> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 

Может кто-нибудь предложить мне, что нужно сделать, поскольку мне нужно сохранить оба фильтра в web.xml?

+0

Таким образом, ваш 'loggedInFilter' как-то блокирует запросы на загрузку файлов. Очень сложно ответить на вопрос, поскольку «loggedInFilter», кажется, является доморощенным фильтром, и его исходный код нигде не виден, поэтому никто не может указать на ошибку кода в этом фильтре. – BalusC

+0

@BalusC Исправить loggedInFilter - фильтр доморощенных. Я не могу поместить код в его довольно длинную часть и доступен только на клиентской машине. Я определил, что если я поставил точку останова на FileUploadFilter.doFilter() и FileUploadRender.decode(), они работают нормально, но FileUploadEvent, определенный в моем классе View, не вызывается, точка отладчика никогда не попадает в мой класс представления. – Harleen

+0

Просто отправьте код в цвете MCVE. Разумеется, весь фрагмент кода не является целым подразделением, ответственным за неправильное поведение. Просто начните с самой минимальной строки: 'chain.doFilter (request, response)', который всегда гарантированно работает. Затем добавляйте из исходного исходного кода каждый раз, когда еще одна строка до тех пор, пока она не начнет плохо себя вести. Логично, что последняя добавленная строка является причиной проблемы. Наконец, переформулируйте вопрос на что-то вроде «Когда я добавляю эту строку [xxx] в свой настраиваемый фильтр, фильтр загрузки файлов PrimeFaces перестает работать, как это вызвано и как я могу его решить?», Что является идеальным вопросом. – BalusC

ответ

0

Я пытался решить проблему. Не было проблем с loggedInfilter, но возникла проблема с некоторыми зависимостями в файле pom.xml, которые создавали проблему для запуска файла fileUploadFilter. Я скорректировал зависимости &, а также скорректировал фильтрацию путем удаления диспетчера.

<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>