JDK版本问题导致的javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection-阿里云开发者社区

开发者社区> 开发与运维> 正文

JDK版本问题导致的javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection

简介: 这是我这几天遇到的一个问题,最后发现是一个低级的错误,不过还是值得记录下来:1、问题现象:我在Eclipse通过MyEclipse创建一个WebProject,使用Struts1.2。在Eclipse运行没有问题,于是就是用Eclipse的Export功能,导出为一个war文件,将该war文件解压后放到了Tomcat的webapps目录,启动tomcat。
这是我这几天遇到的一个问题,最后发现是一个低级的错误,不过还是值得记录下来:
1、问题现象:
我在Eclipse通过MyEclipse创建一个WebProject,使用Struts1.2。在Eclipse运行没有问题,于是就是用Eclipse的Export功能,导出为一个war文件,将该war文件解压后放到了Tomcat的webapps目录,启动tomcat。访问时在浏览器中就遇到了问题:
javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.index_jsp._jspService(index_jsp.java:102)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


运行环境: Tomcat5.5.23, JDK1.5.14 
 
2、问题原因
MyEclipse使用的JDK版本(1.6)和Tomcat使用的版本(1.5)不一致。当我把Struts去掉,直接使用Servlet时,问题就暴露了, 提示Bad version in .class file. 于是更改了Tomcat使用的JDK版本,问题解决。

这里我也把热心的sp16052380的回答转帖过来:
多种情况会导致这个问题,但大致就是以下几种情况:

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版本不对或这两个版本协调有问题。
在以上几条都不能解决问题的情况下,可能就是版本的问题了,换个高版本试试吧


Cannot find ActionMappings or ActionFormBeans collection的错误调试

今天在做struts的连接试验,结果配置完成之后发现调不通,运行之后,出现错误:
javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
反复修改web.xml 和 struts-config.xml 无果。
确定配置没错之后,从其他方面找原因。
最后发现,类库中jar包不全,于是将
commons-beanutils.jar
commons-collections.jar
commons-dbcp.jar
commons-digester.jar
commons-fileupload.jar
commons-lang.jar
commons-pool.jar
commons-resources.jar
commons-validator.jar
拷入lib中,问题得到解决,并调试通过。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章