You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Yasser Zamani (Jira)" <ji...@apache.org> on 2022/06/24 09:51:00 UTC

[jira] [Resolved] (WW-5185) TilesDefinition is not found and the request for a Struts action fails after an upgrade from Struts 2.5.30 to Struts 6.0.

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

Yasser Zamani resolved WW-5185.
-------------------------------
    Resolution: Fixed

PR got merged. thanks!

> TilesDefinition is not found and the request for a Struts action fails after an upgrade from Struts 2.5.30 to Struts 6.0.
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WW-5185
>                 URL: https://issues.apache.org/jira/browse/WW-5185
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 6.0.0
>         Environment: openjdk 11.0.28
> apache tomcat 8.5.78
> Struts 6.0.0 configured with org.apache.struts2.tiles.StrutsTilesListener
>  
>            Reporter: Zdenek Nejedly
>            Assignee: Lukasz Lenart
>            Priority: Major
>             Fix For: 6.0.1
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> When a web app using Struts2 with Tiles via the Tiles Struts plugin is upgraded from 2.5.30 to Struts 6.0.0 the Tiles definitions in WEB-INF/tiles.xml are not discovered automatically thus all requests for the Struts actions with Tiles will fail. The following errors are generated
> {noformat}
> 2022-06-08 21:45:58,525 DEBUG [http-nio-8080-exec-19] tiles.TilesResult (TilesResult.java:135) - checking if tiles definition exists 'app.myAccount.viewSummary'
> 2022-06-08 21:45:58,532 TRACE [http-nio-8080-exec-19] tiles.TilesResult (TilesResult.java:142) - tilesDefinition not found yet, searching in action
> 2022-06-08 21:45:58,537 WARN  [http-nio-8080-exec-19] tiles.TilesResult (TilesResult.java:154) - could not find @TilesDefinition for action: view-summary
> {noformat}
> and
> {noformat}
> org.apache.tiles.definition.NoSuchDefinitionException: Cannot find definition named 'app.myAccount.viewSummary'
>     at org.apache.tiles.impl.mgmt.CachingTilesContainer.render(CachingTilesContainer.java:123)
>     at org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:158)
>     at org.apache.struts2.result.StrutsResultSupport.execute(StrutsResultSupport.java:206)
>     at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:363)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:280)
>     at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:179)
>     at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
>     at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:49)
>     at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at org.apache.struts2.interceptor.FetchMetadataInterceptor.intercept(FetchMetadataInterceptor.java:76)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at org.apache.struts2.interceptor.CoopInterceptor.intercept(CoopInterceptor.java:57)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at org.apache.struts2.interceptor.CoepInterceptor.intercept(CoepInterceptor.java:56)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.doIntercept(ConversionErrorInterceptor.java:143)
>     at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:146)
>     at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:146)
>     at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:202)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:67)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:133)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:89)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:242)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:101)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:142)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:161)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:175)
>     at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at org.apache.struts2.interceptor.csp.CspInterceptor.intercept(CspInterceptor.java:44)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at org.apache.struts2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:140)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:209)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:229)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:196)
>     at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
>     at org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:48)
>     at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:637)
>     at org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79)
>     at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:140)
>     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>     at com.example.filter.CreateUserObject.doFilter(CreateUserObject.java:163)
>     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
>     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
>     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:662)
>     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
>     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
>     at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698)
>     at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:312)
>     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
>     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:367)
>     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:639)
>     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
>     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:882)
>     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1647)
>     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
>     at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
>     at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
>     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>     at java.base/java.lang.Thread.run(Thread.java:834)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)