2013-04-25 8 views
14

Jak uniknąć następującego błędu? Wdrażam Spring-Security na Struts2, aplikacja działa perfekcyjnie, ale poniższy komunikat zostanie wyświetlony na logu serwera.FilterDispatcher jest przestarzałe! - Jaki jest zamiennik dla FilterDispatchera?

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    

Odpowiedz

36

polecam następujący link i robi to, co mówi:

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

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

Link wyposażony ostrzeżenia już nie działa, niestety. Przynajmniej nie dla mnie. –

+0

@ S.Buda Dobry punkt; Zobaczę, czy to się zmieniło w późniejszych wydaniach. –

+0

Używam podpórek 2.3.20 (najnowsza wersja) i podany tam link nie działa. Myślę, że to był ten sam adres URL. Właściwie to miałem wiele problemów z linkami do dokumentacji strutsów, która ostatnio nie działa. –

0

FilterDispatcher (org.apache.struts2.dispatcher.FilterDispatcher) jest stosowany we wczesnym rozwoju Struts2, a to przestarzałe, ponieważ Struts 2.1.3.

Jeśli używasz wersji Struts> = 2.1.3, zawsze zaleca się aktualizację nowej klasy filtra - StrutsPrepareAndExecuteFilter (org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter).

o referencje

FilterDispatcher documentation

StrutsPrepareAndExecuteFilter documentation

0

Od poprzeczne 2.1.3, dodatek wywołanie metody stosuje się w doFilter() metody FilterDispatcher aby wyświetlić komunikat ostrzegawczy.

showDeprecatedWarning() drukuje wiadomość na konsoli. To po prostu 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); 
} 

Ale Struts2 zaleca stosowanie org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter zamiast org.apache.struts2.dispatcher.FilterDispatcher.

konfiguracyjny web.xml

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

Twoja odpowiedź jest zasadniczo bardziej rozbudowaną wersją już zaakceptowanej. Nie widzę sensu w tym poście. – rayryeng

+1

Muszę spróbować odpowiedzieć na to pytanie "aplikacja działa idealnie, ale w dzienniku serwera pojawi się następujący komunikat". – zumit

Powiązane problemy