2013-04-25 2 views
14

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

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    

ответ

36

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

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

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

ссылаемся с предупреждением больше не работает, к сожалению. По крайней мере не для меня. –

+0

@ S.Buda Хорошая точка; Я посмотрю, было ли это изменено в последующих выпусках. –

+0

Я использую struts 2.3.20 (последняя версия) и предоставленная там ссылка не работает. Я думаю, что это был тот же самый url. Вообще-то, у меня было много проблем со ссылками на документацию, которая не работает в последнее время. –

0

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

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

для ссылок

FilterDispatcher documentation

StrutsPrepareAndExecuteFilter documentation

0

Так как 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> 
+0

Ваш ответ по существу является более расширенной версией уже принятого. Я не вижу смысла в этом посте. – rayryeng

+1

Я должен попытаться ответить на этот вопрос: «приложение работает отлично, но в журнале сервера будет показано следующее сообщение». – zumit

Смежные вопросы