Problem

Many Struts 2 developers are claimed that they had configured the action class properly but hits the actions error message while accessing the action class.

See error message in two modes :

1. “struts.devMode” is turn off (default)

HTTP Status 404 - 
There is no Action mapped for namespace / and action name "yourActionName".
 
type Status report 
 
message There is no Action mapped for namespace / and action name "yourActionName".
 
description The requested resource 
(There is no Action mapped for namespace / and action name "yourActionName".) is not available.

2. struts.devMode is turn on

In struts.xml

<constant name="struts.devMode" value="true" />
Struts Problem Report
 
Struts has detected an unhandled exception:
 
Messages:	
There is no Action mapped for namespace / and action name "yourActionName".
Stacktraces
 
There is no Action mapped for namespace / and action name "yourActionName". - [unknown location]
    com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:178)
    org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
   ...
 
You are seeing this page because development mode is enabled. Development mode, or devMode, 
enables extra debugging behaviors and reports to assist developers. To disable this mode, set:
 
  struts.devMode=false
in your WEB-INF/classes/struts.properties file.

Solution

The above error message is saying that the action class is not available, it means you are did something wrong in your action class configuration, may be it’s a namespace or typo error, just double check the name.

Here’s a working action class configuration in struts.xml file, may use for your reference.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
 
<struts>
 	<constant name="struts.devMode" value="true" />
	<package name="default" namespace="/" extends="struts-default">
 
		<action name="abcAction" 
			class="com.mkyong.common.action.AbcAction" >
			<result name="success">pages/abc.jsp</result>
		</action>
 
	</package>
</struts>

Assume the project root context is “Struts2Example“, so, you can access the above action via this URL –
http://localhost:8080/Struts2Example/abcAction.action

Tags :
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider making a donation to the charity, thanks.

Related Posts

Popular Posts