2013-04-25 14 views
14

Wie vermeidet man den folgenden Fehler? Ich implementiere Spring-Security auf Struts2, die Anwendung läuft perfekt, aber die folgende Nachricht wird im Serverprotokoll angezeigt.FilterDispatcher ist veraltet! - Was ist der Ersatz für 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    

Antwort

36

Ich würde empfehlen, den Link folgen und tun, was er sagt:

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

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

Die Verbindung mit der Warnung versehen funktioniert nicht mehr, leider. Zumindest nicht für mich. –

+0

@ S.Buda Guter Punkt; Ich werde sehen, ob das in späteren Versionen geändert wurde. –

+0

Ich benutze Struts 2.3.20 (die neueste Version) und der dort bereitgestellte Link funktionierte nicht. Ich denke, es war die gleiche URL. Eigentlich hatte ich eine Menge Probleme mit Links zu Struts Dokumentation, die in letzter Zeit nicht funktionieren. –

0

Die FilterDispatcher (org.apache.struts2.dispatcher.FilterDispatcher) in der frühen Struts2 Entwicklung verwendet wird, und es ist veraltet seit Struts 2.1.3.

Wenn Sie Struts Version> = 2.1.3 verwenden, wird empfohlen, die neue Filterklasse zu aktualisieren - StrutsPrepareAndExecuteFilter (org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter).

für Referenzen

FilterDispatcher documentation

StrutsPrepareAndExecuteFilter documentation

0

Da Spreizen 2.1.3, ein Additionsmethodenaufruf wird in doFilter() Verfahren FilterDispatcher verwendet, um die Warnmeldung anzuzeigen.

showDeprecatedWarning() druckt die Nachricht auf der Konsole. Es ist nur eine 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); 
} 

Aber Struts2 empfiehlt org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter statt org.apache.struts2.dispatcher.FilterDispatcher zu verwenden.

web.xml Konfiguration

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

Ihre Antwort ist im Wesentlichen eine erweiterte Version des bereits akzeptierten. Ich sehe in diesem Beitrag keinen Punkt. – rayryeng

+1

Ich muss versuchen, diesen Punkt zu beantworten "die Anwendung läuft perfekt, aber die folgende Nachricht wird im Serverprotokoll angezeigt werden". – zumit

Verwandte Themen