You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Don Brown (JIRA)" <ji...@apache.org> on 2008/04/20 05:46:05 UTC

[jira] Resolved: (WW-1496) Sitemesh I18N error when action result not exist

     [ https://issues.apache.org/struts/browse/WW-1496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Don Brown resolved WW-1496.
---------------------------

       Resolution: Cannot Reproduce
    Fix Version/s:     (was: Future)
         Assignee: Don Brown

I don't see the problem here: looks like you had a JSP error that either was or wasn't decorated by sitemesh depending on the filter positions...which is what you would expect.  Please reopen the ticket with a detailed explanation on what Struts is doing wrong if you think there is a bug.

> Sitemesh I18N error when action result not exist
> ------------------------------------------------
>
>                 Key: WW-1496
>                 URL: https://issues.apache.org/struts/browse/WW-1496
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Plugin - Tags
>    Affects Versions: 2.0.1
>         Environment: resin-3.0.21
> sitemesh-2.2.1.jar
>            Reporter: Cleven Lee
>            Assignee: Don Brown
>         Attachments: sitemesh_after_struts.jpg, sitemesh_before_struts.jpg
>
>
> # 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.
-
You can reply to this email to add a comment to the issue online.