I'm trying to upgrade from Struts 2.0.11 to 2.1.6 and having a problem, struts
isn't passing requests thru to my servlets.
I have a servlet named 'status' and defined in web.xml like this.
<servlet-mapping>
<servlet-name>StatusServlet</servlet-name>
<url-pattern>/status</url-pattern>
</servlet-mapping>
After upgrading to 2.1.6 I now get the following exception when I try to go the
the status servlet. I'm not (intentionally) using conventions or any other
zero config-ish plugin. It's looking for an action named 'status' which I don't
have. I use a '.action' suffix for all my action URL requests.
2009-03-03 13:41:05,692 WARN org.apache.struts2.dispatcher.Dispatcher:49 -
Could not find action or result
There is no Action mapped for namespace / and action name status. - [unknown
location]
at
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:177)
at
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
at
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
at
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
at
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:458)
at
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:46)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
com.allmanint.common.servlet.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:61)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
So how do I get it to behave like 2.0.11 and pass any requests that don't have
.action suffix thru to the servlets?