Common Struts Errors and Causes
This page contains errors and exceptions commonly encountered during web application development using Struts. Along with the exception or error messages themselves, potential causes of these errors are often listed along with links to additional resources.
To find the error you're looking for, use your browser's Find or Search capability and input a few words that you are seeing in your error message.
Cannot retrieve mapping for action
错误信息 javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login
可能原因
lNo action defined in struts-config.xml to match that specified in the JSP's <html:form action="Login.do".
相关链接
No action instance for path /xxxx could be created
错误信息 No action instance for path /xxxx could be created
可能原因
lSpecial Note: Because so many different things can cause this error, it is recommended that you turn your error logging/debugging levels on your web server to a high level of verbosity to see the underlying problems in trying to instantiate the action class you have written and associated with the specified action xxxx through an action mapping in the struts-config.xml file.
lYour Action class specified in the struts-config.xml file under the class attribute of the action mapping for action xxxx cannot be found for a variety of reasons, including (but not limited to): ·Failure to place compiled .class file for the action in the classpath (needs to be under WEB-INF/classes with the appropriate directory structure underneath this that matches the package your Action class belongs to). ·Package spelling or hierarchy specified in your action class itself (using the package keyword) does not match the spelling or complete package hierachy specified for your action class in the class attribute of the action in struts-config.xml.
lAction class specified in the /xxxx action mapping in the struts-config.xml file (class attribute) does not extend (directly or indirectly) from the Action class. In other words, your custom Action class does not extend off the Struts-provided Action class or off of another class that eventually extends the Action class (such as DispatchAction.
lProblem in your classpath, such as web server not being able to find ApplicationResources.properties files in the WEB-INF/classes/ directory or specified subdirectory.
lProblem in struts-config.xml file with action mapping.
lProblem with data-sources.xml file.
相关链接
lApplication's Action classes does not extend Struts-provided Action class·
lPackage hierarchy/directory structure specified in struts-config.xml file differs from that hierarchy specified in the actual action class's file using the package keyword.http://www.mail-archive.com/struts-user@jakarta.apache.org/msg65874.html ·
lAction Mapping mistake in struts-config.xml:http://www.manning.com/ao/readforum.html?forum=siaao&readthread=177 ·data-sources.xml file?:http://www.caucho.com/quercus/faq/section.xtp?section_id=30
No getter method for property XXXX of bean org.apache.struts.taglib.html.BEAN
错误信息 javax.servlet.jsp.JspException: No getter method for property username of bean org.apache.struts.taglib.html.BEAN
可能原因
lNo getXXXX() method defined for form field with name XXXX
lThis can happen if the JSP/Struts developer forgets that the name of the get method will have the same spelling as the value supplied in the Struts tag's property attribute, but that case will be different and is based on JavaBean specification rules. For example, my form class should have a getUsername method if my Struts form-related tag has username as the value for its property attribute. Note the difference in case marked with emphasis on the letter "U."
相关链接
lCase can trip up the matching between get method's name and name specified in Struts taghttp://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=58&t=000163
Exception creating bean of class org.apache.struts.action.Actionform: {1}
错误信息 javax.servlet.jsp.JspException: Exception creating bean of class org.apache.struts.action.Actionform: {1}
可能原因
lInstantiating Struts-provided Actionform class directly instead of instantiating a class derived off Actionform. This might occur implicitly if you specify that a form-bean is this Struts Actionform class rather than specifying a child of this class for the form-bean.
lNot associating an Actionform-descended class with an action can also lead to this error.
Cannot find ActionMappings or ActionformBeans collection
错误信息 javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionformBeans collection
可能原因
lEither the <servlet> tags for the Struts action servlet or the <servlet-mapping> tags for the .do extension mapping or both not present in the web.xml file. I saw a case where the web.xml file had no elements other than the root element and so this error was occurring.
lTypos or spelling errors in the struts-config.xml can lead to this error message. For example, missing a slash ("/") on a closing tag can have this effect.
lAnother element that must be present in the web.xml file is the load-on-startup element. This can be either an empty tag or can have an integer specified that indicates the priority of executing the associated servlet. The higher the number in the load-on-startup tags, the lower its priority.
相关链接
NullPointerException at ... RequestUtils.forwardURL
错误信息 java.lang.NullPointerException at org.apache.struts.util.RequestUtils.forwardURL (RequestUtils.java:1223)
可能原因
lMissing path attribute in the forward subelement of the action element in struts-config.xml
相关链接
Cannot find bean org.apache.struts.taglib.html.BEAN in any scope
错误信息 javax.servlet.jsp.JspException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope
可能原因
lTrying to use Struts form subelement tags outside of the Struts' form tag.
相关链接
lUsing form subelements outside of a form tag http://forum.java.sun.com/thread.jsp?thread=337537&forum=4&message=1384153
Missing message for key xx.xx.xx
错误信息 javax.servlet.jsp.JspException: Missing message for key xx.xx.xx
可能原因
lThe key-value pair with specified key is not in ApplicationResources.properties file
lApplicationResources.properties file not in classpath (not in WEB-INF/classes directory in specified location)
相关链接
Cannot find message resources under key org.apache.struts.action.MESSAGE
错误信息 Cannot find message resources under key org.apache.struts.action.MESSAGE
可能原因
lExplicitly trying to use message resources that are not available (such as ApplicationResources.properties not available
lImplicitly trying to use message resources that are not available (such as using empty html:options tag instead of specifying the options in its body -- this assumes options are specified in ApplicationResources.properties file)
lXML parser issues -- too many, too few, incorrect/incompatible versions对此问题解决方案如下:
如:ApplicationResources.properties放在classes/book的文件下,就可以设如下:
</action-mappings>
<message-resources parameter="book/ApplicationResources"/>
</struts-config>
在web.xml中
<init-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value>
</init-param>
通过上述方法,我解决了问题!
相关链接
lXML Parser Issues http://www.mail-archive.com/struts-user@jakarta.apache.org/msg15779.html
No input attribute for mapping path /loginAction
错误信息 No input attribute for mapping path /xxxxAction
可能原因
lNo input attribute in action mapping in struts-config.xml file for the action with the name specified in the error message. An input attribute is not required if form validation is not performed (either because the validate attribute is set to false or because the validation method in the relevant form class is not implemented. The input attribute specifies the page leading to this action because that page is used to display error messages from the form validation.
相关链接
Strange Output Characters (页面乱码)
错误信息 Strange and seemingly random characters in HTML and on screen, but not in original JSP or servlet.
可能原因
lRegular HTML form tags intermixed incorrectly with Struts html:form tags.
HTML标签与Struts标签不正确的混合使用
lEncoding style used does not support characters used in page.
使用了JSP页面不支持的编码
相关链接
"Document contained no data" or no data rendered on page (空白页面)
错误信息
l"Document contained no data" in Netscape (在Netscape中显示“文件中无数据”)
lNo data rendered (completely empty) page in Microsoft Internet Explorer(在IE中为空白页面,无任何显示信息)
可能原因
lEmploying a descendent of the Action class that does not implement the perform() method while using the Struts 1.0 libraries. Struts 1.1 Action child classes started using execute() rather than perform(), but is backwards compatible and supports the perform() method. However, if you write an Action-descended class for Struts 1.1 with an execute() method and try to run it in Struts 1.0, you will get this "Document contained no data" error message in Netscape or a completely empty (no HTML whatsoever) page rendered in Microsoft Internet Explorer.
l用Struts1.1写的应用在struts1.0环境中运行时,可能出现此问题。
相关链接
其它错误信息
编译JSP文件时出现错误:
java.lang.NullPointerException
error:org.apache.jasper.JasperException: Error compiling \JSPs\security\appUserCreate.jsp
可能原因:
JSP页面中的Struts标记有语法错误。
例如:<bean:message key=”button.submit”> 错误原因:右边的括号前缺少斜杠“/”
正确的为:<bean:message key=”button.submit”/>
不同语言资源文件中的Key不匹配