struts报错
刚开学,开始学习 struts 2 的配置以及 如何开始 编写 “Hello world ”,这一开始真的毫无头绪 ,一直卡在这两个报错上面 ,甚至从头检查JDK以及 tomcat的配置问题 ,检查完毕后 ,直接从代码入手
StrutsPrepareAndExecuteFilter
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
这个报错直接导致了我其他的项目也无法打开
网上给出了各种各样的解决方法,但是一直没有找到问题的关键 ,然后我从一篇论坛中找到灵感,struts 2.5版本的和 2.2版本的部署是不一样的,但是我觉得既然出了2.5版本 还要回过头来用旧版本感觉是不符合逻辑的
后来我直接百度 struts 过滤器配置 ,果然发现 2.5的代码是不一样的,而且
并且在2.5以前还需要导入一个xwork-core的jar包,2.5后xwork的这个jar包和Struts2-core这个包合并了,就不需要再导入了
我一直没用在2.5的jar中找到这个包,没用提早想到框架的变化,也是有点迟钝的
这是学校给出的代码 (沿用的是struts 2.3的版本)
但是 struts 2.5以后的代码 已经不一样了
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/* </url-pattern>
</filter-mapping>
2.5版本直接是filter,不是ng.filter!
404
好的 解决掉这个问题 , 可以正常启动 JSP 和 其他项目了
但是报错依然存在
并且出现了 404 报错
报错原因(忘记截图了 )
Wrong method was defined as an action method: index
一开始 查阅资料
1.URL写错,这个时候需要先检查一下拼写有没有出错
2. 所需要的jar包没有导入完全,
3.web.xml文件和struts.xml文件配置不正确
4. web.xml中的filter-class路径写错,struts2 2.5的版本以后,过滤器的路径和以前不一样了。之前filter的路径是org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter, struts2 2.5版本之后呢,中间的这个.ng就没有了
5.没有在WEB-INF目录下导入struts2的jar包,即使你已经将包导入完全,系统也会提示你classNotFoundExce
来源 : https://blog.csdn.net/cc_bk/article/details/79484163
URL 我已经可以背下来了 ,配置问题解决,然后我开始想到导包的问题,因为一开始想到学校的代码问题,我也想到了,会不会以前的包也会不一样,发现确实少加了一个包,但是启动后无果,再次
查阅资料发现 :
struts2-rest-plugin-2.5.14.1.jar
这个包也会导致 StrutsPrepareAndExecuteFilter 报错 ,晕掉了 原来加jar 包添加过多 也会导致这种问题 ,以后还是跟着教程走。