15

如何避免以下错误?我在 Struts2 上实现 Spring-Security,应用程序运行完美,但以下消息将显示在服务器日志上。

 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            
4

3 回答 3

36

我建议按照链接并按照它所说的去做:

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

    <filter-class>
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
</filter>
于 2013-04-26T00:09:55.720 回答
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 文档

StrutsPrepareAndExecuteFilter 文档

于 2014-05-14T11:21:52.163 回答
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>
于 2014-07-11T05:05:50.863 回答