2

In Struts 2 if action is not found I want to redirect to 404.jsp page I have added the error code in web.xml file as below.

<error-page>
    <error-code>403</error-code>
    <location>/403.jsp</location>
</error-page>
<error-page>
    <error-code>404</error-code>
    <location>/404.jsp</location>
</error-page>

It rendering the 404.jsp page content but in log below error coming. How to remove the below error

2014-04-07 14:07:46,706  WARN (org.apache.struts2.dispatcher.Dispatcher:64) - Could not find action or result: /struts2-test/home11
There is no Action mapped for namespace [/] and action name [home11] associated with context path [/struts2-test]. - [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:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Roman C
  • 49,761
  • 33
  • 66
  • 176
rajub
  • 320
  • 1
  • 5
  • 17
  • Breakpoint at `org.apache.struts2.dispatcher.Dispatcher:64`. – Roman C Apr 05 '14 at 16:11
  • Thanks for your response I didn't get you. Can you please explain me in details – rajub Apr 05 '14 at 16:53
  • What is the content of error page? – Roman C Apr 05 '14 at 18:26
  • I have updated the content of error page in above question. If action not found then it should redirect to the 404 page and don't through the warning, so how can i achive this. – rajub Apr 07 '14 at 08:43
  • Post the error page, seems like what you want is not possible, the warning is produced by the framework using their loging and you have to do nothing rather than turn the logger off by adjusting its level. – Roman C Apr 07 '14 at 10:13

1 Answers1

1

The Struts 2 framework produces warnings if no action is found in the runtime configuration while rendering the JSP page when the application is configured to run in the struts.devMode. It helps the developer to resolve inappropriate mapping of the actions in the Struts tags. However, the action mapping not always inferred statically but at runtime. So, the tags should be able to find mappings from the attributes in the value stack. But the struts tags is only executed in the action context that won't be available when you redirect from the error page. Make sure you have correct URL that is mapped to the Struts action when redirected to it.

Roman C
  • 49,761
  • 33
  • 66
  • 176