There is no Action mapped for namespace [/] and action name [Test] associated with context path [/TestStruts]. - [unknown location]
Because /TestStruts
is a context path at which deployed your application. It has the same path as namespace in your package. Try
http://localhost:8080/TestStruts/TestStruts/test.action
When URls is rendering from the struts tags it's trying to find a corresponding action configuration. If there's no config found the warning is issued.
Tiny
Just an orphan kid and have no more to say. Three things in general, cannot be avoided (at least I can never) Mother Mother-tongue Mother-land. They are always unique. I'm a family-less boy. My family was hunted leaving me all alone when my house targeted and deliberately set on a fire by a mob during a nonsense communal riot but I was survived by a rescue team with the help of firemen. As a survival, I didn't know whether it was my fortune or misfortune but when I recovered, the rescue team came to my home, one day. One of the members gave me a piece of paper in my hand in which the following text was written. lifeisnowhere. He asked me to read it carefully and I could hardly interpret the text as Life is now here, instead of Life is nowhere. All of them gave me a cute smile and went away and I decided to live peacefully and hopefully on their saying from then onwards and very soon. Because of this tragedy, I'm alone couldn't join a school but a curiosity to learn something made me a self-learner. I'm indeed a self-learner, so I'm likely not able to answer any questions on this site right now. In the field of computer science, my self-study mainly includes, QBASIC, C, C++, C#, VB, Java, JavaScript, PHP and a little about ASP.NET. Oracle, MySQL and MSSQL-Server with DBMS. and other theoretical subjects. I'm currently dealing with - Android and Java EE including Servlet, JSP-JSTL/EL (with Spring and Struts with ORM models JPA/Hibernate) and JSF.
Updated on June 15, 2022Comments
-
Tiny almost 2 years
I'm trying my first application on struts 2.3.16 in NetBeans 7.2.1. It shows the following error on entering a URL -
http://localhost:8080/TestStruts/Test.action
(There is aTest.jsp
page).WARNING: Could not find action or result: /TestStruts/Test.action There is no Action mapped for namespace [/] and action name [Test] associated with context path [/TestStruts]. - [unknown location] at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185) at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63) at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37) at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:552) at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722)
The
Test.jsp
page:<s:form namespace="/TestStruts" action="test"> <table border="0" class=""> <tr> <td> <s:textfield id="name" name="name" label="Enter your name"/> </td> </tr> <tr> <td> <s:textfield id="email" name="email" label="Enter your email"/> </td> </tr> <tr> <td></td> <td><s:submit value="Submit"/></td> </tr> </table> </s:form>
The action class:
package actions; import com.opensymphony.xwork2.ActionSupport; public final class TestAction extends ActionSupport { private static final String SUCCESS = "success"; private String name; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public String execute() throws Exception { System.out.println("name = "+name); System.out.println("email = "+email); return SUCCESS; } }
The
strtus.xml
file:<?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.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <constant name="struts.custom.i18n.resources" value="myapp" /> <package name="test" namespace="/TestStruts" extends="struts-default"> <action name="test" class="actions.TestAction" method="execute"> <result name="success">/Test.jsp</result> </action> </package> </struts>
The
web.xml
file:<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/applicationContext.xml </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
In addition to jar files of Spring, I have added the following jar files to the classpath.
- commons-beanutils-1.8.0.jar
- commons-chain-1.2.jar
- commons-collections-3.1.jar
- commons-digester-2.0.jar
- commons-fileupload-1.3.jar
- commons-io-2.2.jar
- commons-lang3-3.1.jar
- commons-lang-2.4.jar
- commons-logging-1.1.3.jar
- commons-logging-api-1.1.jar
- commons-validator-1.3.1.jar
- freemarker-2.3.19.jar
- javassist-3.11.0.GA.jar
- ognl-3.0.6.jar
- struts2-core-2.3.16.jar
- struts2-spring-plugin-2.3.16.jar
- xwork-core-2.3.16.jar
When the URL is changed to
.jsp
from.action
likehttp://localhost:8080/TestStruts/Test.jsp
, it shows the following warnings.Dec 22, 2013 9:00:44 PM org.apache.struts2.components.ServletUrlRenderer warn WARNING: No configuration found for the specified action: 'test' in namespace: '/TestStruts'. Form action defaulting to 'action' attribute's literal value. Dec 22, 2013 9:00:45 PM org.apache.struts2.components.ServletUrlRenderer warn WARNING: No configuration found for the specified action: 'test' in namespace: '/TestStruts'. Form action defaulting to 'action' attribute's literal value.
What am I missing?