web-dev-qa-db-ja.com

FilterDispatcherは非推奨です! --FilterDispatcherの代替品は何ですか?

次のエラーを回避するにはどうすればよいですか? Struts2にSpring-Securityを実装しています。アプリケーションは完全に実行されますが、サーバーログに次のメッセージが表示されます。

 WARNING!!!                            
 FilterDispatcher <<< is deprecated! Please use the new filters!                                                                      
      This can be a source of unpredictable problems!                                                                  
         Please refer to the docs for more details!                           
         http://struts.Apache.org/2.x/docs/webxml.html            
14
J888

リンクをたどって、それが言うことをすることをお勧めします:

<filter>
    <filter-name>struts2</filter-name>

    <filter-class>
        org.Apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
</filter>
36
Dave Newton

FilterDispatcher(org.Apache.struts2.dispatcher.FilterDispatcher)は、初期のStruts2開発で使用されており、Struts2.1.3以降非推奨になっています。

Strutsバージョン> = 2.1.3を使用している場合は、新しいフィルタークラスであるStrutsPrepareAndExecuteFilter(org.Apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)をアップグレードすることを常にお勧めします。

参考のために

FilterDispatcherドキュメント

StrutsPrepareAndExecuteFilterドキュメント

0
Paresh3489227

Struts 2.1.3以降、FilterDispatcherのdoFilter ()メソッドで追加メソッド呼び出しが使用され、警告メッセージが表示されます。

showDeprecatedWarning()はコンソールにメッセージを出力します。それはただのSystem.out.println()です。

 public void doFilter(....){
  showDeprecatedWarning();
    ........
 }

 private void showDeprecatedWarning() {
    String msg =
            "\n\n" +
            "***********************************************************************\n" +
            "*                               WARNING!!!                            *\n" +
            "*                                                                     *\n" +
            "* >>> FilterDispatcher <<< is deprecated! Please use the new filters! *\n" +
            "*                                                                     *\n" +
            "*           This can be a source of unpredictable problems!           *\n" +
            "*                                                                     *\n" +
            "*              Please refer to the docs for more details!             *\n" +
            "*            http://struts.Apache.org/2.x/docs/webxml.html            *\n" +
            "*                                                                     *\n" +
            "***********************************************************************\n\n";
    System.out.println(msg);
}

ただし、Struts2では、org.Apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterの代わりにorg.Apache.struts2.dispatcher.FilterDispatcherを使用することをお勧めします。

web.xml構成

<filter>
     <filter-name>struts2</filter-name>
     <filter-class>
         org.Apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
     </filter-class>
</filter>
0
zumit