Cannot find ActionMappings or ActionFormBeans coll

以下是我转载的,我的解决办法是“一定要在eclipse自动添加struts包后,用eclipse构建路径中添加包选项,查看并把lib下的所有包再次添加。以防止eclipse未自动添加上!”


1。如果是用Easy Struts来开发,easy struts虽然会帮你把需要的jar拷到WEB-INF/lib里,但这只是一部分,还得手动把其他Struts的lib/*.jar文件拷过来,否则会提示"Cannot find ActionMappings or ActionFormBeans collection"
2。如果不是用easy struts来开发可以参考一下来检查:
解决办法:

*1*

对应\jakarta-struts-1.1\lib\中的*.jar文件(struts1.1共有10个*.jar文件),看看\StrutsWeb\WEB-INF\lib\中的*.jar文件是否完整。
如果在\StrutsWeb\WEB-INF\lib\中只有一个struts.jar,那么将其他的*.jar文件也copy到\StrutsWeb\WEB-INF\lib\中。
然后重新启动Apache Tomcat即可访问。
struts.jar是一个重要的文件,它包含了struts中的所有Java类。

*2*

如果经过上面的一步还没有搞定,那么请耐心的检查或修改\StrutsWeb\WEB-INF\中的struts-config.xml配置文件。
看看struts配置情况是否写错,action-mappings的配置是否写错。
一定要注意区分字母的大小写。
请再检查一遍。
然后请再检查一遍。
不要烦躁,一定要像对待初恋情人一样对待它,不然会死的很难堪!
一定要好好检查。
这个MVC中的C很要命的,流程控制全靠它了,一定要小心呵护的。[:D]
还有,记得修改完毕后重新启动Apache Tomcat。

*3*

我在网上看到有人对这个问题说“试了千百回,改了千百次,就是不知道什么原因”。
如果你也恰好和struts是初恋,也恰好试了千百回,改了千百次,
“Cannot find ActionMappings or ActionFormBeans collection”的错误仍然涛声依旧,
那么,请不要灰心,
相信我,胜利的喜悦你马上就能体会到!

因为,这里有一个毕杀绝技!!!!!

请按照如下操作:

打开TOMAT_HOME\conf\server.xml文件,找到在上面提到过的加入WEB应用的那一行:

<Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true"/>

然后对其修改成为:

<Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true" privileged="true"/>

这样就加上一个参数:privileged="true",这个参数是至关重要的。
(我花N多时间找了N多帖子问了N个人才搞定的,可见struts的初恋有多辛苦了!! [:(])

然后重新启动Apache Tomcat,这样访问JSP页面就没有问题了。[:D]

*4*

我在网上查找了一些struts应用的配置说明资料,一些配置资料上只提到把struts.jar这个文件copy到\WEB-INF\lib\中,
而并没有说需要把sturts的全部*.jar文件进行copy。
上面提到过,struts.jar包含了struts中的所有Java类。故我有此一试。
(当然,如果连struts.jar都没有了,那就没有搞头了。[:(] )

我只把struts.jar文件copy到\StrutsWeb\WEB-INF\lib\中,然后启动Apache Tomcat(当然,web.xml和struts-config.xml已经配置完毕)。
一试,果然不爽。

访问JSP页面时,看到提示错误:

“org.apache.jasper.JasperException: Cannot find ActionMappings or ActionFormBeans collection”

傻眼了。

又折腾了半天,发现上面提到的privileged="true"在这种情况下也可以发挥作用,
即修改server.xml文件,在<Context>的描述中加上参数privileged="true",使之变成这样:

<Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true" privileged="true"/>

这样就可以访问JSP页面并且运行无误,没有错误提示了。[^ō^]

所以可以得出这样一个东东:
如果在\StrutsWeb\WEB-INF\lib\中只有一个struts.jar而没有其他的*.jar文件,那么,在server.xml文件中把相对的WEB应用的描述进行修改,在其中加入privileged="true"参数,就可以使struts项目的应用正常运行且访问无误。

但总体来说有以下几种原因:

1。Web.xml未初始化问题
少了一个<load-on-startup>0</load-on-startup>
这样开始是没有加载这个类,就没有初始化struts-config.xml,所以找不到
actionmappings or actionformbeans collection。

2。struts-config.xml问题

3。jar包不全或版本不对
也有可能导致这个问题,从stuts例子里面拷过来就好了。struts1.1自带共10个jar包。

4。编译问题
有可能Action和Formbean没有编译,也会有这个问题,检查一下有没有对应的class文件就好。class路径不对可能也会导致这个问题。

5。版本问题
用的servlet容器和struts版本不对或这两个版本协调有问题。
在以上几条都不能解决问题的情况下,可能就是版本的问题了,换个高版本试试吧
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值