zoukankan      html  css  js  c++  java
  • 解决关于 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 异常的原因

    先来看一下,让人迷惑的异常截图,以便再次加深迷惑的感受。

    感受之后,就要找原因了,这样迷惑下去不是办法。

    1. 为什么会出现这个错误?

    很明显,错误已经明确的提示到没有找到这类。也就是说,这个类不存在。

    开什么玩笑?一直用的好好的怎么就突然不存在了?这不科学啊!

    2. 这个类为什么不存在?

    问题已经定向到了错误范围,那就从struts2 这个jar包开始吧,经过排查发现是有这个类的,如图:

    那就奇怪了,以前用的都好好的,今天突然就没有了?不信邪,继续分析。。。。

    排查pom文件 ,与之前正常项目对比了一下,发现一处不同,之前用的struts2是2.3版本的,而今天高兴将它换成了2.5的,如图:

    也许问题就在这,翻越大量的关于官方版本变动的表述,最后确认到:

    2.4 以后的struts2过滤类文件 StrutsPrepareAndExecuteFilter.class 的结构已经做了调整,没有ng 这个包了,

    因此,配置文件中这句代码才会导致异常,因为系统启动时找不到它。

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

    所以,将配置文件换成这段代码就可以了。

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

    最后总结:

    因为struts2版本在2.4开始做了结构调整导致的,所以配置struts2时,一定要注意这个文件的位置结构就不会有这个问题了。

  • 相关阅读:
    Codeforces 1111D(退背包、排列组合)
    Codeforces 1152D(dp)
    UVaLive6443(线段树)
    UVaLive6435(dp)
    POJ1741(点分治)
    Codeforces 161D(树形dp)
    BZOJ2595(状压dp)
    关于spring java.lang.IllegalArgumentException: Name for argument type [java.lang.String] 的错误
    FingerPrint Fuzzy Vault Matlab实践
    Mybatis的ResultMap的使用
  • 原文地址:https://www.cnblogs.com/mcqueen/p/13191552.html
Copyright © 2011-2022 走看看