2013-04-25 99 views
14

如何避免以下錯誤?我正在Struts2上實現Spring-Security,該應用程序運行良好,但以下消息將顯示在服務器日誌中。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

提供警告的鏈接不工作了,很遺憾。至少不適合我。 – 2015-02-11 22:10:02

+0

@ S.Buda好點;我會看看在後續版本中是否發生了變化。 – 2015-02-11 22:15:02

+0

我正在使用struts 2.3.20(最新版本)和提供的鏈接無法正常工作。我認爲這是相同的網址。實際上,我一直有很多麻煩,連接到最近沒有工作的struts文檔。 – 2015-02-11 22:18:11

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,加法方法調用在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

你的答案本質上是已被接受的版本的更加擴展版本。我在這篇文章中看不到一點。 – rayryeng 2014-07-11 05:27:49

+1

我必須試着回答這個問題:「應用程序運行完美,但以下消息將顯示在服務器日誌中」。 – zumit 2014-07-11 06:50:01

相關問題