Struts 的javax.servlet.servletexception: cannot find actionmappings or actionformbeans collection错误
2005-02-03 01:44
465 查看
调试一个有验证使用了标签的struts程序碰到了这样一个问题,检查了N个地方,没有找到错误,开始网上搜索。发现原来这是一个普遍问题啊,有很多种情况会导致这个问题,但大致就是以下几种情况:
1。Web.xml未初始化问题
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
</servlet>
以上少了一个
<load-on-startup>0</load-on-startup>
这样开始是没有加载这个类,就没有初始化struts-config.xml,所以找不到actionmappings or actionformbeans collection。
这个错误的特征是,如果开始访问login.jsp出错,但手动访问login.do后就没有任何错误了。我就是碰到这样的情况。
PS:web.xml还有可能没有定义Tag Library,也有可能出问题,参照struts例子解决。
2。struts-config.xml问题
主要是action 的path 还有和formbean的对应问题
<form-beans>
<form-bean name="loginForm"
type="com.javapro.struts.LoginForm"/>
</form-beans>
<action-mappings>
<action
path="/login"
type="com.javapro.struts.LoginAction"
name="loginForm"
input="/login.jsp"
unknown="true">
<forward name="success" path="/mainMenu.jsp"/>
</action>
以上是一个正确的对应,注意大小写问题
PS:这里还有格式不正确导致配置无法正确加载,可以看到控制台或log文件中有出错的提示。比如没有结束标签,属性名字写错了等等
还有如果抄书的话,可能书使用的版本较老,有可能
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
中是1。0,web.xml可能也有这个问题,参考你用的版本的例子就好了。
3。jar包不全或版本不对
也有可能导致这个问题,从stuts例子里面拷过来就好了。
4。编译问题
有可能Action和Formbean没有编译,也会有这个问题,检查一下有没有对应的class文件就好。class路径不对可能也会导致这个问题。
5。版本问题
用的servlet容器和struts版本不对或这两个版本协调有问题。
在以上几条都不能解决问题的情况下,可能就是版本的问题了,换个高版本试试吧
可能还有其他情况,欢迎补充
----------------
因为写书或文章的时候用的struts版本与现在的版本不同,抄书上的例子很有可能运行不了,还是要根据新版本的示例来改啊,不过这样收获也很多,对于加深理解很有帮助。看来学程序还就是不能动手少了。我相信当我解决了100个问题后,我也就精通struts了
。
1。Web.xml未初始化问题
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
</servlet>
以上少了一个
<load-on-startup>0</load-on-startup>
这样开始是没有加载这个类,就没有初始化struts-config.xml,所以找不到actionmappings or actionformbeans collection。
这个错误的特征是,如果开始访问login.jsp出错,但手动访问login.do后就没有任何错误了。我就是碰到这样的情况。
PS:web.xml还有可能没有定义Tag Library,也有可能出问题,参照struts例子解决。
2。struts-config.xml问题
主要是action 的path 还有和formbean的对应问题
<form-beans>
<form-bean name="loginForm"
type="com.javapro.struts.LoginForm"/>
</form-beans>
<action-mappings>
<action
path="/login"
type="com.javapro.struts.LoginAction"
name="loginForm"
input="/login.jsp"
unknown="true">
<forward name="success" path="/mainMenu.jsp"/>
</action>
以上是一个正确的对应,注意大小写问题
PS:这里还有格式不正确导致配置无法正确加载,可以看到控制台或log文件中有出错的提示。比如没有结束标签,属性名字写错了等等
还有如果抄书的话,可能书使用的版本较老,有可能
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
中是1。0,web.xml可能也有这个问题,参考你用的版本的例子就好了。
3。jar包不全或版本不对
也有可能导致这个问题,从stuts例子里面拷过来就好了。
4。编译问题
有可能Action和Formbean没有编译,也会有这个问题,检查一下有没有对应的class文件就好。class路径不对可能也会导致这个问题。
5。版本问题
用的servlet容器和struts版本不对或这两个版本协调有问题。
在以上几条都不能解决问题的情况下,可能就是版本的问题了,换个高版本试试吧
可能还有其他情况,欢迎补充
----------------
因为写书或文章的时候用的struts版本与现在的版本不同,抄书上的例子很有可能运行不了,还是要根据新版本的示例来改啊,不过这样收获也很多,对于加深理解很有帮助。看来学程序还就是不能动手少了。我相信当我解决了100个问题后,我也就精通struts了
。
相关文章推荐
- javax.servlet.jsp.JspException: Cannot find message resources under key org.apache.struts.action...
- javax.servlet.ServletException: BeanUtils.populate(Struts 上传文件)
- javax.servlet.ServletException: No getter method for property Admin_Name of bean org.apache.struts.taglib.html.BEAN
- Struts 的javax.servlet.servletexception: cannot find actionmappings or actionformbeans
- Struts跳转报错:javax.servlet.jsp.JspException:No getter method for property schoolName of bean error
- struts javax.servlet.servletexception: cannot find actionmappings or actionformbeans collection错误
- 自学struts时,javax.servlet.ServletException: java.lang.NullPointerException
- javax.servlet.UnavailableException: Parsing error processing resource path /WEB-INF/struts-config.xm
- javax.servlet.UnavailableException: Parsing error processing resource path /WEB-INF/struts-config.xml
- javax.servlet.jsp.JspException: No getter method for property requestId of bean org.apache.struts.ta
- [javax.servlet.ServletException: java.lang.NullPointerException]
- J2EE开发中遇见的Exception(java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet)
- java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
- import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport;这两行报错
- javax.servlet.ServletException: [Ljava.lang.Object;
- javax.servlet.ServletException: ActionMappingsまたはActionFormBeansコレクションが見つかりません
- javax.servlet.ServletException: Could not resolve view with name‘ XXXX’in servlet with name 'spring'的解决方案-----SKY
- javax.servlet.ServletException: BeanUtils.populate
- javax.servlet.ServletException: Circular view path [index]: would dispatch back to the current handl
- 关于javax.servlet.ServletException: File "/head.jsp" not异常