i am absolute beginner to Struts2. I am tying to follow tutorials on struts web site. i followed this tutorial. i have some trouble with it. i created dynamic web project on eclipse. Then i followed the tutorial. However when i run the example i get the following error.
There is no Action mapped for namespace [/] and action name [hello] associated with context path [/Hello_World_Struts_2]. - [unknown location]
i have the following directory structure
And my struts.xml file is
<?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="basicstruts2" extends="struts-default" namespace="/">
<action name="index">
<result>/index.jsp</result>
</action>
<action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">
<result name="SUCCESS">/HelloWorld.jsp</result>
</action>
</package>
</struts>
thanks for your responses.
You have to create a
classes/
folder underWEB-INF/
and put in yourstruts.xml
file!I got the same error and got solution looking at tomcat log when restarting : doctype were missing in
struts.xml
so I added
now it works !
I had the same issue and I was facing it because of not mentioning the namespace correctly in struts.xml.
I added the following snippet in the web.xml :
and also making the namespace as "/" default... Hope it answers your query..
In my case I had to rename
Struts.xml
--->struts.xml
I solved the issue by adding default-action-ref tag, for example,
after package tag
in struts.xml
The
struts.xml
configuration file needs to be on the classpath (as opposed to inWEB-INF
).The linked tutorial assumes a Maven build and states the
struts.xml
file should go insrc/main/resources
, which will be included in the classpath in Maven builds. Since you're ignoring that part, you'll likely want to put it in the root of your source directory.