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

        

Reply via email to