I'm having an issue with naming one of my actions logout and I'm trying to figure out why.
I have a action named logout and another one called out. They both have the exact same class and results. However when I try to browse to logout.action I get a stack trace and when I browse to out.action everything works as expected. Bellow is my configuration: public class LogoutAction implements ServletRequestAware, Serializable { private static final long serialVersionUID = -5615396306298191276L; private HttpServletRequest request; public void setServletRequest(final HttpServletRequest request) { this.request = request; } public String execute() throws Exception { request.getSession().invalidate(); return Action.SUCCESS; } } struts.xml <?xml version="1.0" encoding="UTF-8" ?> input,back,cancel,browse input,back,cancel,browse dojo\..* input,back,cancel,browse input,back,cancel,browse /WEB-INF/pages/error/default.jsp /WEB-INF/pages/login.jsp /WEB-INF/pages/index.jsp /WEB-INF/pages/index.jsp index / index / index / Here is my stack trace. No result defined for action kiff.action.LogoutAction and result success com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:357) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:259) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:141) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:248) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:49) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:124) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:170) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:170) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:104) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:84) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:208) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:88) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:130) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:137) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:130) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) com.google.inject.struts2.GuiceObjectFactory$ProvidedInterceptor.intercept(GuiceObjectFactory.java:224) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:230) com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:229) com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:456) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:227) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:477) org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:467) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) java.lang.Thread.run(Thread.java:619) -- View this message in context: http://www.nabble.com/Something-special-about-action-named-%22logout%22-tp20513297p20513297.html Sent from the Struts - User mailing list archive at Nabble.com.