2016-03-29 17 views
1

私は2つのフィルタを持つweb.xmlファイルを持っています。PrimeFaces FileUploadフィルタ& loggedInFilter。私がloggedInFilterにコメントすると、FileUploadフィルターが正常に動作します。& FileUploadEventがトリガーされます。私は両方のフィルタをweb.xmlに保持しているので、FileUpoadFilterはトリガされません。以下は、アプリケーション内の別のフィルタ、すなわちloggedInFilterはPrimeFacesのファイルアップロードフィルタの前に実行されますが、それは解決しないので、私はPrimeFacesのFileUploadフィルターフィルター・マッピングでも、ディスパッチャが含まれるようにしようとしたweb.xmlに複数のフィルタがある場合、FileUploadイベントはトリガされません

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

私のweb.xmlのです。

<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()にブレークポイントを設定すると、それらは正常に動作していますが、Viewクラスで定義されたFileUploadEventは呼び出されず、デバッガポイントはビュークラスに到達しませんでした。 – Harleen

+0

MCVEフレーバーでコードをポストするだけです。確かに、コードスニペット全体が、誤動作の原因となる1つのユニット全体ではありません。ほとんどの最小限のライン 'chain.doFilter(request、response)'から始めてください。これは常に動作することが保証されています。それから、元のソースコードから1行追加するたびに、誤動作が始まるまで追加してください。論理的には、最後に追加された行が問題の原因です。最後に、「私のカスタムフィルタにこの行[xxx]を追加すると、PrimeFacesファイルのアップロードフィルタが機能しなくなります。どのようにして解決できますか?」という完璧な質問です。 – BalusC

答えて

0

私はこの問題を解決しようとしましたが、loggedInfilterでは問題はありませんでしたが、fileUploadFilterがトリガーされる問題を作成していたpom.xmlファイルのいくつかの依存関係に問題がありました。私は、依存関係を修正しました。また、ディスパッチャを削除して、フィルタマッピングを修正しました。&

<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> 
関連する問題