FilterDispatcher устарел! - Что такое замена FilterDispatcher? - программирование
Подтвердить что ты не робот

FilterDispatcher устарел! - Что такое замена FilterDispatcher?

Как избежать следующей ошибки? Я реализую Spring -Security на Struts2, приложение работает отлично, но в журнале сервера будет показано следующее сообщение.

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

Ответ 1

Я бы рекомендовал следовать ссылке и делать то, что она говорит:

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

    <filter-class>
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
</filter>

Ответ 2

FilterDispatcher (org.apache.struts2.dispatcher.FilterDispatcher) используется в ранней версии Struts2, и его устаревший со Struts 2.1.3.

Если вы используете версию Struts >= 2.1.3, всегда рекомендуется обновить новый класс фильтра - StrutsPrepareAndExecuteFilter (org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter).

для ссылок

Документация FilterDispatcher

Документация StrutsPrepareAndExecuteFilter

Ответ 3

Так как Struts 2.1.3 вызов метода добавления используется в doFilter () методе FilterDispatcher для отображения предупреждающего сообщения.

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>