I looked at my Struts 2 + Tiles 3 application. Like the instructions say, you need either to register the tile result OR extend from tiles-default. I only did the former. See what happens if you extend from struts-default instead.
On Fri, Oct 18, 2013 at 3:30 PM, Paul Benedict <[email protected]> wrote: > Do you, by chance, have both Tiles 2 and Tiles 3 libraries in your app? > > > On Fri, Oct 18, 2013 at 2:53 PM, Emi Lu <[email protected]> wrote: > >> On 10/18/2013 03:42 PM, Paul Benedict wrote: >> >>> I think you're using the wrong result class. See step #3 of the document. >>> >> >> It's the same result class, and here is the struts-login.xml. Thanks. >> >> >> <struts> >> >> <package name="Login" namespace="/Login" extends="tiles-default"> >> >> >> <result-types> >> <result-type name="tiles" >> class="org.apache.struts2.**views.tiles.TilesResult" >> /> >> </result-types> >> >> >> <action name="*ProcessLoginAction" method="{1}" >> class="ProcessLoginAction"> >> <result name="success" type="tiles">login_main_page</**result> >> <result name="error" type="tiles">login_main_page</**result> >> >> <result name="main_menu" type="redirectAction"> >> <param name="actionName">** >> ProcessMenuAction</param> >> <param name="namespace">/Menu</param> >> </result> >> >> <result name="ajax_check"> >> /WEB-INF/pages/errorinfo/ajax_** >> error_check.jsp >> </result> >> </action> >> ...... >> >> </package> >> >> </struts> >> >> >> >> >>> On Fri, Oct 18, 2013 at 2:37 PM, Emi Lu <[email protected]> wrote: >>> >>> On 10/18/2013 11:57 AM, Emi Lu wrote: >>>> >>>> On 10/18/2013 11:36 AM, Paul Benedict wrote: >>>>> >>>>> >>>>> https://cwiki.apache.org/****confluence/display/WW/Tiles+3+****Plugin<https://cwiki.apache.org/**confluence/display/WW/Tiles+3+**Plugin> >>>>>> <https://cwiki.apache.**org/confluence/display/WW/**Tiles+3+Plugin<https://cwiki.apache.org/confluence/display/WW/Tiles+3+Plugin> >>>>>> > >>>>>> >>>>>> >>>>> >>>>> Web.xml >>>> =============== >>>> ... >>>> <context-param> >>>> <param-name> >>>> org.apache.tiles.impl.****BasicTilesContainer.**** >>>> DEFINITIONS_CONFIG >>>> </param-name> >>>> <param-value> >>>> >>>> /WEB-INF/tiles/login/tiles-****login.xml,/WEB-INF/tiles/main/**** >>>> tiles-main.xml,/WEB-INF/tiles/****help/tiles-help.xml >>>> </param-value> >>>> </context-param> >>>> ... >>>> <listener> >>>> >>>> <listener-class>org.apache.****tiles.extras.complete.** >>>> CompleteAutoloadTilesListener<****/listener-class> >>>> >>>> </listener> >>>> ... >>>> >>>> >>>> >>>> >>>> >>>> But got the following exception: >>>> ==============================****====== >>>> java.lang.NoSuchMethodError: org.apache.tiles.access.** >>>> TilesAccess.getContainer(****Ljava/lang/Object;)Lorg/** >>>> apache/tiles/TilesContainer; >>>> at org.apache.struts2.views.****tiles.TilesResult.doExecute(** >>>> TilesResult.java:100) >>>> at org.apache.struts2.dispatcher.** >>>> **StrutsResultSupport.execute(**** >>>> StrutsResultSupport.java:186) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.** >>>> executeResult(****DefaultActionInvocation.java:****371) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****275) >>>> at org.apache.struts2.****interceptor.debugging.** >>>> DebuggingInterceptor.****intercept(****DebuggingInterceptor.java:256) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at com.opensymphony.xwork2.****interceptor.** >>>> DefaultWorkflowInterceptor.****doIntercept(**** >>>> DefaultWorkflowInterceptor.** >>>> java:167) >>>> at com.opensymphony.xwork2.****interceptor.** >>>> MethodFilterInterceptor.****intercept(**** >>>> MethodFilterInterceptor.java:****98) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at com.opensymphony.xwork2.****validator.**** >>>> ValidationInterceptor.** >>>> doIntercept(****ValidationInterceptor.java:****265) >>>> at org.apache.struts2.****interceptor.validation.** >>>> AnnotationValidationIntercepto****r.doIntercept(** >>>> AnnotationValidationIntercepto****r.java:68) >>>> at com.opensymphony.xwork2.****interceptor.** >>>> MethodFilterInterceptor.****intercept(**** >>>> MethodFilterInterceptor.java:****98) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at com.opensymphony.xwork2.****interceptor.** >>>> ConversionErrorInterceptor.****intercept(**** >>>> ConversionErrorInterceptor.** >>>> java:138) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at com.opensymphony.xwork2.****interceptor.**** >>>> ParametersInterceptor.* >>>> *doIntercept(****ParametersInterceptor.java:****239) >>>> at com.opensymphony.xwork2.****interceptor.** >>>> MethodFilterInterceptor.****intercept(**** >>>> MethodFilterInterceptor.java:****98) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at com.opensymphony.xwork2.****interceptor.**** >>>> ParametersInterceptor.* >>>> *doIntercept(****ParametersInterceptor.java:****239) >>>> at com.opensymphony.xwork2.****interceptor.** >>>> MethodFilterInterceptor.****intercept(**** >>>> MethodFilterInterceptor.java:****98) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at com.opensymphony.xwork2.****interceptor.** >>>> StaticParametersInterceptor.****intercept(**** >>>> StaticParametersInterceptor.** >>>> java:191) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at org.apache.struts2.****interceptor.**** >>>> MultiselectInterceptor.** >>>> intercept(****MultiselectInterceptor.java:****73) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at org.apache.struts2.****interceptor.** >>>> CheckboxInterceptor.intercept(****CheckboxInterceptor.java:91) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at org.apache.struts2.****interceptor.**** >>>> FileUploadInterceptor.** >>>> intercept(****FileUploadInterceptor.java:****252) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at com.opensymphony.xwork2.****interceptor.**** >>>> ModelDrivenInterceptor. >>>> **intercept(****ModelDrivenInterceptor.java:****100) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at com.opensymphony.xwork2.****interceptor.** >>>> ScopedModelDrivenInterceptor.****intercept(**** >>>> ScopedModelDrivenInterceptor.**** >>>> java:141) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at com.opensymphony.xwork2.****interceptor.** >>>> ChainingInterceptor.intercept(****ChainingInterceptor.java:**145) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at com.opensymphony.xwork2.****interceptor.**** >>>> PrepareInterceptor.** >>>> doIntercept(****PrepareInterceptor.java:171) >>>> at com.opensymphony.xwork2.****interceptor.** >>>> MethodFilterInterceptor.****intercept(**** >>>> MethodFilterInterceptor.java:****98) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at com.opensymphony.xwork2.****interceptor.I18nInterceptor.** >>>> intercept(I18nInterceptor.****java:161) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at org.apache.struts2.****interceptor.**** >>>> ServletConfigInterceptor.** >>>> intercept(****ServletConfigInterceptor.java:****164) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at com.opensymphony.xwork2.****interceptor.AliasInterceptor.** >>>> ** >>>> intercept(AliasInterceptor.****java:193) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at com.opensymphony.xwork2.****interceptor.** >>>> ExceptionMappingInterceptor.****intercept(**** >>>> ExceptionMappingInterceptor.** >>>> java:189) >>>> at com.opensymphony.xwork2.****DefaultActionInvocation.**** >>>> invoke(** >>>> DefaultActionInvocation.java:****246) >>>> at org.apache.struts2.impl.****StrutsActionProxy.execute(** >>>> StrutsActionProxy.java:54) >>>> at org.apache.struts2.dispatcher.** >>>> **Dispatcher.serviceAction(** >>>> Dispatcher.java:563) >>>> 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:****235) >>>> at org.apache.catalina.core.****ApplicationFilterChain.**** >>>> doFilter(** >>>> ApplicationFilterChain.java:****206) >>>> at org.displaytag.filter.****ResponseOverrideFilter.**** >>>> doFilter(** >>>> ResponseOverrideFilter.java:****125) >>>> at org.apache.catalina.core.****ApplicationFilterChain.** >>>> internalDoFilter(****ApplicationFilterChain.java:****235) >>>> at org.apache.catalina.core.****ApplicationFilterChain.**** >>>> doFilter(** >>>> ApplicationFilterChain.java:****206) >>>> at org.displaytag.filter.****ResponseOverrideFilter.**** >>>> doFilter(** >>>> ResponseOverrideFilter.java:****125) >>>> at org.apache.catalina.core.****ApplicationFilterChain.** >>>> internalDoFilter(****ApplicationFilterChain.java:****235) >>>> at org.apache.catalina.core.****ApplicationFilterChain.**** >>>> doFilter(** >>>> ApplicationFilterChain.java:****206) >>>> at org.apache.catalina.core.****StandardWrapperValve.invoke(** >>>> StandardWrapperValve.java:233) >>>> at org.apache.catalina.core.****StandardContextValve.invoke(** >>>> StandardContextValve.java:191) >>>> at org.apache.catalina.core.****StandardHostValve.invoke(** >>>> StandardHostValve.java:127) >>>> at org.apache.catalina.valves.****ErrorReportValve.invoke(** >>>> ErrorReportValve.java:103) >>>> at org.apache.catalina.core.****StandardEngineValve.invoke(** >>>> StandardEngineValve.java:109) >>>> at org.apache.catalina.connector.****CoyoteAdapter.service(** >>>> CoyoteAdapter.java:293) >>>> at org.apache.coyote.http11.****Http11Processor.process(** >>>> Http11Processor.java:861) >>>> at org.apache.coyote.http11.****Http11Protocol$** >>>> Http11ConnectionHandler.****process(Http11Protocol.java:****606) >>>> at org.apache.tomcat.util.net.****JIoEndpoint$Worker.run(** >>>> JIoEndpoint.java:489) >>>> at java.lang.Thread.run(Thread.****java:662) >>>> >>>> >>>> Could someone tell which jar missing please? >>>> >>>> Struts2.3.15.3 + tiles3.01. >>>> >>>> Thanks a lot! >>>> Emi >>>> >>>> >>>> >>> >>> >> >> -- >> Emi Lu, ENCS, Concordia University, Montreal H3G 1M8 >> [email protected] +1 514 848-2424 x5884 >> > > > > -- > Cheers, > Paul > -- Cheers, Paul
