Sitemesh I18N error when action result not exist
------------------------------------------------
Key: WW-1496
URL: http://issues.apache.org/struts/browse/WW-1496
Project: Struts 2
Issue Type: Bug
Components: Views
Affects Versions: 2.0.1
Environment: resin-3.0.21
sitemesh-2.2.1.jar
Reporter: Cleven Lee
# struts.xml:
<action name="login" class="somePackage.LoginAction">
<result name="success" type="dispatcher">
<param name="location">/main.jsp</param>
</result>
<result name="loginfail" type="dispatcher">
<param name="location">/login.jsp</param>
</result>
<result name="input">/login.jsp</result>
</action>
# web.xml
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
When login succeed, dispatcher to main.jsp. But main.jsp isn't exist, struts
display some error message:
# Start
Struts Problem Report
Struts has detected an unhandled exception:
Messages: /main.jsp
File: com/caucho/jsp/PageManager.java
Line number: 251
Stacktraces
java.io.FileNotFoundException: /main.jsp
com.caucho.jsp.PageManager.getPage(PageManager.java:251)
com.caucho.jsp.PageManager.getPage(PageManager.java:166)
com.caucho.jsp.QServlet.getSubPage(QServlet.java:298)
com.caucho.jsp.QServlet.getPage(QServlet.java:210)
com.caucho.server.dispatch.PageFilterChain.compilePage(PageFilterChain.java:206)
com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:133)
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39)
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115)
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:277)
com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:106)
org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:136)
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:175)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:309)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:218)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:177)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.intercept(ParametersInterceptor.java:147)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:80)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:204)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:120)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:59)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:174)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.intercept(PrepareInterceptor.java:115)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:156)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:124)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:180)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
org.apache.struts2.impl.StrutsActionProxy$1.call(StrutsActionProxy.java:27)
org.apache.struts2.impl.StrutsActionProxy$1.call(StrutsActionProxy.java:26)
org.apache.struts2.impl.RequestContextImpl.callInContext(RequestContextImpl.java:152)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:25)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:330)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:256)
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:118)
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:274)
com.caucho.server.port.TcpConnection.run(TcpConnection.java:511)
com.caucho.util.ThreadPool.runTasks(ThreadPool.java:516)
com.caucho.util.ThreadPool.run(ThreadPool.java:442)
java.lang.Thread.run(Thread.java:534)
# End
These error message also decorated with Sitemesh, but no ASCII text in
decorator page is not display right.
If web.xml modify like this:
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Put struts before sitemesh, this page is not decorated with Sitemesh.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira