2016-03-29 5 views
1

Ich habe eine web.xml Datei mit zwei Filtern PrimeFaces FileUpload Filter & loggedInFilter. Wenn ich loggedInFilter kommentieren, funktioniert der Filter FileUpload einwandfrei. & FileUploadEvent wird ausgelöst. Incase habe ich beide Filter in web.xml behalten, dann wird FileUpoadFilter nicht ausgelöst. Unten ist mein web.xmlPrimefaces FileUpload Event wird nicht ausgelöst, wenn es mehrere Filter in web.xml gibt

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

ich versucht habe Dispatcher auch in PrimeFaces Fileupload-Filter Filter-Mapping, da der andere Filter heißt loggedInFilter in Anwendung läuft vor dem PrimeFaces Datei-Upload-Filter, aber es hilft nicht.

Kann mir jemand vorschlagen, was getan werden muss, da ich beide Filter in web.xml behalten muss?

+0

So blockiert Ihr 'loggedInFilter' Datei-Upload-Anfragen irgendwie. Es ist wirklich schwierig, die Frage zu beantworten, da 'loggedInFilter' anscheinend ein selbst entwickelter Filter ist und sein Quellcode nirgends sichtbar ist, so dass niemand den Code-Fehler in diesem Filter aufzeigen kann. – BalusC

+0

@BalusC Korrekter loggedInFilter ist ein selbst erstellter Filter. Ich kann den Code nicht als ziemlich langwieriges Stück und nur auf dem Client-Rechner verfügbar machen. Ich habe festgestellt, dass, wenn ich den Breakpoint auf FileUploadFilter.doFilter() und FileUploadRender.decode() setze, sie gut funktionieren, aber das FileUploadEvent, das in meiner View-Klasse definiert ist, nicht aufgerufen wird, der Debugger-Punkt trifft meine View-Klasse nie. – Harleen

+0

Nur Postleitzahl in MCVE-Geschmack. Sicherlich ist nicht das ganze Code-Snippet als eine ganze Einheit für das Fehlverhalten verantwortlich. Beginnen Sie mit der minimalen Zeile 'chain.doFilter (request, response)', die immer garantiert funktioniert. Dann füge aus dem ursprünglichen Quellcode jedes Mal eine weitere Zeile hinzu, bis es sich falsch verhält. Logischerweise ist die letzte hinzugefügte Zeile die Ursache des Problems. Richten Sie die Frage schließlich wie folgt aus: "Wenn ich diese Zeile [xxx] zu meinem benutzerdefinierten Filter hinzufüge, funktioniert der Filter zum Hochladen von PrimeFaces-Dateien nicht mehr, wie wird das verursacht und wie kann ich es lösen?", Was eine perfekte Frage ist. – BalusC

Antwort

0

Ich habe versucht, das Problem zu lösen, gab es kein Problem mit loggedInfilter, aber es gab ein Problem mit einigen Abhängigkeiten in der Datei pom.xml, die ein Problem für fileUploadFilter ausgelöst werden verursacht. Ich habe die Abhängigkeiten & korrigiert außerdem das Filter-Mapping korrigiert, indem ich Dispatcher entfernte.

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