This page's URI: /dustinmarx/SW/struts/errors.html
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 | |
---|---|
Exception | javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login |
Probable Cause | No action defined in struts-config.xml to match that
specified in the JSP's <html:form
action="Login.do" . |
Related Links |
Cannot retrieve definition for form bean null | |
---|---|
Exception | org.apache.jasper.JasperException: Cannot retrieve definition for form bean null |
Probable Cause | This exception typically occurs because Struts cannot find the form bean
it expects for a specific action according to the mapping in the
struts-config.xml file. Most often, this is probably
because the name given to the form in the name attribute
of the form-bean element does not match the
name attribute of the associated action's
action element. In other words, the action and form should
each have a name attribute that matches exactly, including
case. It has been reported that this error has been seen when no
name attribute is associated with the action. If there
is no name attribute in an action element,
no form is associated with the action. Others have reported this
error as merely a symptom of something completely unrelated (all too
common), but the mismatch of name attributes in the
form-bean and action elements in the
struts-config.xml file is the usual culprit. |
Must specify type attribute if name is specified | |
---|---|
Exception | Must specify type attribute if name is specified |
Probable Cause | This error is seen in conjunction with the Struts' HTML FORM tag.
As the error message points out, the "name" attribute was used in the
Struts HTML FORM tag ( There are two easy ways to get around this:
|
Relevant Links | Struts FAQ / View / HTML |
No action instance for path /xxxx could be created | |
---|---|
Exception | No action instance for path /xxxx could be created |
Probable Causes | Special 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.
|
Your 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):
| |
Action 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 .
| |
Problem in your classpath, such as web server not being able to find
ApplicationResources.properties files in the
WEB-INF/classes/ directory or specified subdirectory.
| |
Problem in struts-config.xml file with action mapping.
| |
Problem with data-sources.xml file. |
|
Relevant Links |
|
Cannot find bean under name ... | |
---|---|
Exception | Cannot find bean under name ... |
Probable Cause | This is usually seen in association with a problematic Struts
HTML SELECT custom tag. The Struts There are two ways to address this. The first approach is to put a
bean in one of the scopes so that the |
No getter method for property XXXX of bean org.apache.struts.taglib.html.BEAN | |
---|---|
Exception | javax.servlet.jsp.JspException: No getter method for property username of bean org.apache.struts.taglib.html.BEAN |
Probable Causes | No getXXXX() method defined for form field with name XXXX |
This 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."
| |
Related Links |
|
java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm | |
---|---|
Error | java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm |
Probable Causes | This error occurs typically when the specified Java .class
file cannot be located in the classpath. If this occurs at runtime of
a web application (error shows on browser rather than a rendered page),
this typically means that specified class is not in the web server's
classpath (made up primarily of /WEB-INF/classes and
/WEB-INF/lib contents). Note that the
NoClassDefFoundError in general typically indicates lack of
the specified class in the relevant classpath. In this particular case
the missing class would be ActionForm.class |
This error is sometimes seen when one or more
ActionForm.class instances are actually in the classpath.
This most often occurs when ActionForm.class is made
available correctly by placing struts.jar in the
/WEB-INF/lib directory. When this library has been
correctly placed and it is verified that ActionForm.class
actually is present in the struts.jar file, the problem is
either that more than one copy of ActionForm.class is in the
classpath or (more likely) that duplicate versions of class files other
than ActionForm are in the same classpath, causing
confusion. This is especially true if a class that extends
ActionForm is made available twice, such as in an
.ear file that encompasses a .war file as well
as in the .war file's own classpath
(/WEB-INF/classes ). This problem can be resolved by
guaranteeing that there are no redundant classes, especially those
related to Struts (directly from Struts or extensions of Struts), in
the web application's view. |
|
Related Links |
|
Exception creating bean of class org.apache.struts.action.ActionForm: {1} | |
---|---|
Exception | javax.servlet.jsp.JspException: Exception creating bean of class org.apache.struts.action.ActionForm: {1} |
Probable Causes | Instantiating 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. |
Not associating an ActionForm -descended class with an
action can also lead to this error. | |
Related Links |
Cannot find ActionMappings or ActionFormBeans collection | |
---|---|
Exception | javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection |
Probable Causes | Either 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. |
Typos 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. | |
Another 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. | |
Another possibility, related to need to use
load-on-startup tag, is that precompiling JSPs using
Struts can lead to this message as well. | |
Related Links |
|
NullPointerException at ... RequestUtils.forwardURL | |
---|---|
Exception | java.lang.NullPointerException at org.apache.struts.util.RequestUtils.forwardURL(RequestUtils.java:1223) |
Probable Causes | Missing path attribute in the forward
subelement of the action element in
struts-config.xml |
Related Links |
Cannot find bean org.apache.struts.taglib.html.BEAN in any scope | |
---|---|
Exception | javax.servlet.jsp.JspException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope |
Probable Causes | Trying to use Struts Note that if you
accidentaly make your opening Note your prefix may be different than
|
Related Links |
|
Missing message for key xx.xx.xx | |
---|---|
Exception | javax.servlet.jsp.JspException: Missing message for key xx.xx.xx |
Probable Causes | The key-value pair with specified key is not in
ApplicationResources.properties file |
ApplicationResources.properties file not in classpath
(not in WEB-INF/classes directory in specified location)
| |
Related Links |
Cannot find message resources under key org.apache.struts.action.MESSAGE | |
---|---|
Exception | Cannot find message resources under key org.apache.struts.action.MESSAGE |
Probable Causes | Explicitly trying to use message resources that are not available
(such as ApplicationResources.properties not available
|
Implicitly 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) |
|
XML parser issues -- too many, too few, incorrect/incompatible versions | |
Related Links |
|
No input attribute for mapping path /loginAction | |
---|---|
Error | No input attribute for mapping path /xxxxAction |
Probable Cause | No 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. |
Related Links |
Strange Output Characters | |
---|---|
Error | Strange and seemingly random characters in HTML and on screen, but not in original JSP or servlet. |
Probable Causes | Regular HTML form tags intermixed incorrectly with
Struts html:form tags. |
Encoding style used does not support characters used in page. | |
Related Links |
"Document contained no data" or no data rendered on page | ||
---|---|---|
Error | "Document contained no data" in Netscape | |
No data rendered (completely empty) page in Microsoft Internet Explorer | ||
Probable Cause | Employing 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. | |
Related Links |
This page's URI is: http://www.geocities.com/dustinmarx/SW/struts/errors.html