I'm having an odd interaction/problem with Struts, eclipse, and Tomcat. I have this in my struts.xml file:
<package name="auth" extends="default" namespace="/auth"> <action name="logout2"> <result>/landing.jsp</result> </action> <action name="logout" class="com.subecon.actions.auth.LogoutAction"> <result>/landing.jsp</result> </action> <action name="reload" class="com.subecon.actions.store.ReloadAction"> <result name="success">/reload.jsp</result> </action> </package> I can access /auth/logout2 correctly and can access /auth/reload correctly. The body of the execute method in both actions is nearly identical: public class LogoutAction extends ActionSupport { private static final Logger logger = LogManager.getLogger(LogoutAction.class); public String execute() throws Exception { logger.error("THIS IS THE LOGOUT ACTION"); logger.error("THE TEXT IS " + "success"); return SUCCESS; } public class ReloadAction extends ActionSupport { private static final Logger logger = LogManager.getLogger(ReloadAction.class); public String execute() throws Exception { logger.error("in reload action"); ConfigurationManager configMan=Dispatcher.getInstance().getConfigurationManager(); configMan.reload(); return SUCCESS; } } It just seems like something is sitting on the /auth/logout path but the only instances of the word logout in my struts.xml file is the snippet above. Where it gets odd is that if I change that action definition to the following and completely stop and start Tomcat from Eclipse I still get an error: <action name="logout2"> <result>/landing.jsp</result> </action> <action name="logout"> <result>/landing.jsp</result> </action> Struts Problem Report Struts has detected an unhandled exception: *Messages*: - No result defined for action com.subecon.actions.auth.LogoutAction and result success ------------------------------ Stacktraces *No result defined for action com.subecon.actions.auth.LogoutAction and result success* com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:375) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:253) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:247) .... rest omitted. You can see there is no mention of LogoutAction in the struts.xml file yet it's still being called. This is with a complete stop and restart of Tomcat. Then I change it to this: <action name="reload" class="com.subecon.actions.auth.LogoutAction"> <result name="success">/reload.jsp</result> </action> /auth/reload calls LogoutAction correctly and I don't get a stack trace. In every case LogoutAction is actually being called shown by the logger messages showing up in the console. There seems to be something about the 'logout' being in the URL. There's no other webapps running on this instance of Tomcat - it's completely managed by Eclipse. Where do I start with this? I've stared and compared and cannot figure out where it's breaking. Thanks dave