Hi, I am having exactly the same problem. I was using Struts 2.1.1, switched to struts 2.1.2 (including the restful and codebehind plugins) and started to get this 'no action found' error. I am quite confident that I did not do anything that should've resulted in this. Of course I cannot be 100% sure, because I did goof around with my code a bit, but I checked and rechecked and rerechecked everthing twice and couldn't find a reason for this behaviour.
John's web.xml and the stacktrace are identical to mine. I don't declare any namespaces in my struts.xml packages nor in the login form from which I try to invoke the login action <s:form action="/login/execute" method="post">. (Also tried with an exclamation mark i.e. login!execute) I have a LoginAction.java with an execute method in the pacakge defined in the web.xml's actionPackages init parameter. At least this declaration used to send the control to the LoginAction's execute method. Doesn't do anymore. I am using the struts 2.1.2 tiles plugin as well. On my index.jsp I include a tiles main layout which in turn includes sub-layouts (such as the login form). I don't know if this has anything got to do with the problem I'm having. So, is a result of something I did wrong or could it be something else? Thank you Pauli Savolainen 2008/7/28 Paul Benedict <[EMAIL PROTECTED]>: > What's the correct way of writing a good 404 or action not found page? Does > s2 have something like a fallback action if nothing can be found? > > Paul > > On Mon, Jul 28, 2008 at 4:04 PM, Dave Newton <[EMAIL PROTECTED]> wrote: > >> Hmm, I wonder if it was the same issue I was having with 2.1.3 a week or so >> ago that I haven't had time to re-visit--so it actually could be the web.xml >> (specifically the dispatcher being used) and I may have put my foot in my >> mouth (again). >> >> Somebody followed up saying the original FilterDispatcher worked, though, >> so maybe not. Hrm. >> >> Dave >> >> --- On Mon, 7/28/08, John Moose <[EMAIL PROTECTED]> wrote: >> > and I probably should have included this as well: >> > >> > Struts Problem Report >> > >> > Struts has detected an unhandled exception: >> > *Messages*: >> > There is no Action mapped for namespace / and action name >> > dashbd. >> > ------------------------------ >> > Stacktraces *There is no Action mapped for namespace / and >> > action name >> > dashbd. - [unknown location]* >> > >> > >> > >> com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:177) >> > >> > >> com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:59) >> > >> > >> org.apache.struts2.rest.RestActionProxyFactory.createActionProxy(RestActionProxyFactory.java:40) >> > >> > >> org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:439) >> > >> > >> org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) >> > >> > >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) >> > >> > >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) >> > >> > >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) >> > >> > >> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) >> > >> > >> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) >> > >> > >> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) >> > >> > >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) >> > >> > >> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) >> > >> > >> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) >> > >> > >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) >> > >> > >> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) >> > >> > >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) >> > >> > >> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) >> > >> > >> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) >> > >> > >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >> > >> > >> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) >> > >> > >> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) >> > >> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) >> > >> > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) >> > >> > >> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) >> > >> > >> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) >> > >> > >> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) >> > >> > >> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) >> > java.lang.Thread.run(Thread.java:595) >> > >> > >> > >> > On Mon, Jul 28, 2008 at 4:39 PM, John Moose >> > <[EMAIL PROTECTED]> wrote: >> > >> > > Hi Dave, >> > > >> > > I have the following snippet of DashbdController class >> > that I am expecting >> > > to hit with the following URL: >> > > >> > > http:/localhost:8080/Dashbd >> > > >> > > <---SNIPPET >> > > >> > > package com.myeclipse.ozone; >> > > >> > > import java.util.Collection; >> > > >> > > import com.myeclipse.hibernate.*; >> > > >> > > import org.hibernate.HibernateException; >> > > import org.hibernate.Session; >> > > import org.hibernate.cfg.Configuration; >> > > >> > > import org.apache.struts2.config.Result; >> > > import org.apache.struts2.config.Results; >> > > import >> > org.apache.struts2.dispatcher.ServletActionRedirectResult; >> > > import org.apache.struts2.rest.DefaultHttpHeaders; >> > > import org.apache.struts2.rest.HttpHeaders; >> > > >> > > import com.opensymphony.xwork2.ModelDriven; >> > > import com.opensymphony.xwork2.Validateable; >> > > import com.opensymphony.xwork2.ValidationAwareSupport; >> > > >> > > >> > > @Results({ >> > > @Result(name="success", >> > type=ServletActionRedirectResult.class, >> > > value="dashbd") >> > > }) >> > > >> > > public class DashbdController extends >> > ValidationAwareSupport implements >> > > ModelDriven<Object>, Validateable{ >> > > >> > > //private static Gadget transientGadget = new >> > Gadget(); >> > > >> > > //String id; >> > > int id; >> > > >> > > private static int dashboardId; >> > > >> > > private Collection<Dashbd> >> > dashboardList; >> > > private Collection<Dashbd> model; >> > > private Collection<DashbdType> >> > dashboardTypeList; >> > > >> > > private DashbdService dashboardService = new >> > DashbdService(); // where >> > > the DAOs live >> > > >> > > >> > > /* >> > > >> > >> **************************************************************************************** >> > > * DASHBOARDS >> > > */ >> > > >> > > // >> > > // GET .../dashbd get all >> > dashboards in table >> > > // >> > > public HttpHeaders index() { >> > > dashboardList = dashboardService.getAll(); >> > > return new >> > DefaultHttpHeaders("index") // dashbd-index.jsp >> > > .disableCaching(); >> > > } >> > > >> > > >> > > and etc. .... >> > > >> > > ...END SNIPPET > >> > > >> > > There are more methods in this calss of course, but >> > all I'm trying to do >> > > initially is hit the index() action with the URL above >> > ?!? >> > > >> > > the index.jsp is really simple: >> > > >> > > <% response.sendRedirect("dashbd"); %> >> > > >> > > >> > > this same scheme works perfectly with another RESTful >> > app service and fir >> > > the life of me, I can't find any >> > > >> > > >> > > >> > > On Mon, Jul 28, 2008 at 4:17 PM, Dave Newton >> > <[EMAIL PROTECTED]>wrote: >> > > >> > >> The web.xml doesn't have anything to do with >> > the error message; it thinks >> > >> there isn't an action configured at the URL >> > you're requesting. >> > >> >> > >> Impossible to help without more information. >> > >> >> > >> Dave >> > >> >> > >> --- On Mon, 7/28/08, John Moose >> > <[EMAIL PROTECTED]> wrote: >> > >> >> > >> > From: John Moose <[EMAIL PROTECTED]> >> > >> > Subject: There is no Action mapped for >> > namespace / and action name ... >> > >> > To: "Struts Users Mailing List" >> > <user@struts.apache.org> >> > >> > Date: Monday, July 28, 2008, 3:58 PM >> > >> > I know what you're thinking... web.xml >> > has no action >> > >> > mapping, but it does! >> > >> > >> > >> > >> > >> > <?xml version="1.0" >> > >> > encoding="UTF-8"?> >> > >> > <web-app version="2.5" >> > >> > >> > 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_2_5.xsd"> >> > >> > >> > >> > <display-name>Struts 2 RESTful >> > Ozone >> > >> > Services</display-name> >> > >> > >> > >> > <!-- Filters --> >> > >> > <filter> >> > >> > >> > <filter-name>action2</filter-name> >> > >> > >> > >> > >> > >> >> > >> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> >> > >> > <init-param> >> > >> > >> > >> > >> > <param-name>actionPackages</param-name> >> > >> > >> > >> > >> > <param-value>com.myeclipse.ozone</param-value> >> > >> > </init-param> >> > >> > <init-param> >> > >> > >> > >> > >> > <param-name>struts.devMode</param-name> >> > >> > >> > <param-value>true</param-value> >> > >> > </init-param> >> > >> > </filter> >> > >> > >> > >> > <filter-mapping> >> > >> > >> > <filter-name>action2</filter-name> >> > >> > >> > <url-pattern>/*</url-pattern> >> > >> > </filter-mapping> >> > >> > >> > >> > <welcome-file-list> >> > >> > >> > <welcome-file>index.jsp</welcome-file> >> > >> > </welcome-file-list> >> > >> > </web-app> >> > >> > >> > >> > >> > >> > >> > >> > This file works well with another Struts2.1.3 >> > app. Can >> > >> > someone help me >> > >> > understand where to look for the cause of >> > this??? >> > >> > >> > >> > Thanks folks >> > >> >> > >> >> > --------------------------------------------------------------------- >> > >> To unsubscribe, e-mail: >> > [EMAIL PROTECTED] >> > >> For additional commands, e-mail: >> > [EMAIL PROTECTED] >> > >> >> > >> >> > > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]