解决关于 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 异常的原因

Posted 迦南邪恋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决关于 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时,一定要注意这个文件的位置结构就不会有这个问题了。

 

以上是关于解决关于 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 异常的原因的主要内容,如果未能解决你的问题,请参考以下文章

关于 vmware虚拟机的一些问题及解决办法备忘

关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)(转)

如何解决LodRunner中报错关于Error -10489

关于问题解决与事件解决的思考

关于python下安装PIL库遇到的问题及解决办法

FastAdmin 关于跨域问题解决