2013-04-25 122 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

相关问题