Dropping in Tiles 2.0.6 breaks my Struts app.

View: New views
6 Messages — Rating Filter:   Alert me  

Dropping in Tiles 2.0.6 breaks my Struts app.

by Gamble, Wesley (WG10) :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I attempted to move to Tiles 2.0.6 but it caused problems in my Struts
2.0.11.1 app.

 

In WEB-INF/lib, I simply replaced the 2.0.5 versions of  tiles-api,
tiles-core, and tiles-jsp with the 2.0.6 versions and when I went to run
my first action, I got the following exception:

 

org.apache.tiles.TilesException: ServletException including path
'/layouts/base.jsp'.
 
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
a:614)
 
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
a:246)
 
org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:10
4)
 
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSu
pport.java:178)

 

It appears that my layout could not be found.  

 

Is there something else that needs to change to make Tiles 2.0.6 work
with Struts 2.0.11.1?  I don't see a new version of the Tiles plugin for
Struts anywhere.  Did the format of the Tiles config. file change
perhaps?

 

Below is my current config. data.

 

Thanks,

Wes

 

========================================================================
==============================================

 

Here's my Tiles support configuration in web.xml:

 

<!-- Tiles support -->

  <context-param>

 
<param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
</param-name>

      <param-value>/tiles/tiles.xml</param-value>

  </context-param>

 

  <listener>

 
<listener-class>org.apache.tiles.web.startup.TilesListener</listener-cla
ss>

  </listener>

  <!-- Tiles support -->

 

Here's my Tiles configuration file:

 

<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD
Tiles Configuration 2.0//EN"

       "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">

           

<tiles-definitions>

  <definition name="baseLayout" template="/layouts/base.jsp">

      <put-attribute name="head" value="/tiles/head.jsp" />

      <put-attribute name="content" value="/tiles/content.jsp" />

  </definition>

 

  <definition name="startApplication" extends="baseLayout">

      <put-attribute name="content" value="/tiles/start_application.jsp"
/>

  </definition>

</tiles-definitions>

 


Re: Dropping in Tiles 2.0.6 breaks my Struts app.

by Antonio Petrelli-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2008/6/9 Gamble, Wesley (WG10) <WG10@...>:
> I attempted to move to Tiles 2.0.6 but it caused problems in my Struts
> 2.0.11.1 app.
>
> In WEB-INF/lib, I simply replaced the 2.0.5 versions of  tiles-api,
> tiles-core, and tiles-jsp with the 2.0.6 versions and when I went to run
> my first action, I got the following exception:

Please post the complete exception, especially the cause exception.

> Is there something else that needs to change to make Tiles 2.0.6 work
> with Struts 2.0.11.1?

In fact no, Tiles 2.0.6 is completely compatible with Tiles 2.0.5.

Antonio

RE: Dropping in Tiles 2.0.6 breaks my Struts app.

by Gamble, Wesley (WG10) :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2008/6/9 Gamble, Wesley (WG10) <WG10@...>:
> I attempted to move to Tiles 2.0.6 but it caused problems in my Struts
> 2.0.11.1 app.
>
> In WEB-INF/lib, I simply replaced the 2.0.5 versions of  tiles-api,
> tiles-core, and tiles-jsp with the 2.0.6 versions and when I went to
run
> my first action, I got the following exception:

Please post the complete exception, especially the cause exception.

It appears that there is no doFinally method on the insertAttribute tag.

Here's my layout where I use insertAttribute:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <%@ taglib prefix="s" uri="/struts-tags" %>
  <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
  <tiles:insertAttribute name="head" />
  <body>
    <div id="content_container">
      <tiles:insertAttribute name="content" />
    </div>
  </body>
</html>

And here is the full exception:

javax.servlet.ServletException: org.apache.tiles.TilesException:
ServletException including path '/layouts/base.jsp'.
       
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:5
15)
       
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher
.java:419)

root cause

org.apache.tiles.TilesException: ServletException including path
'/layouts/base.jsp'.
       
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
a:614)
       
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
a:246)
       
org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:10
4)
       
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSu
pport.java:178)
       
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultAct
ionInvocation.java:348)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:253)
       
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doInterce
pt(DefaultWorkflowInterceptor.java:221)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(Vali
dationInterceptor.java:150)
       
org.apache.struts2.interceptor.validation.AnnotationValidationIntercepto
r.doIntercept(AnnotationValidationInterceptor.java:48)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept
(ConversionErrorInterceptor.java:123)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Pa
rametersInterceptor.java:167)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercep
t(StaticParametersInterceptor.java:105)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInt
erceptor.java:83)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploa
dInterceptor.java:207)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(Mod
elDrivenInterceptor.java:74)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.interce
pt(ScopedModelDrivenInterceptor.java:127)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(
ProfilingActivationInterceptor.java:107)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(
DebuggingInterceptor.java:206)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(Chaini
ngInterceptor.java:115)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterc
eptor.java:143)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(Prepa
reInterceptor.java:121)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(Servle
tConfigInterceptor.java:170)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInte
rceptor.java:123)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercep
t(ExceptionMappingInterceptor.java:176)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java
:50)
       
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:5
04)
       
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher
.java:419)

root cause

org.apache.tiles.util.TilesIOException: ServletException including path
'/layouts/base.jsp'.
       
org.apache.tiles.servlet.context.ServletTilesRequestContext.wrapServletE
xception(ServletTilesRequestContext.java:298)
       
org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(Serv
letTilesRequestContext.java:200)
       
org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(Ser
vletTilesRequestContext.java:179)
       
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
a:606)
       
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
a:246)
       
org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:10
4)
       
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSu
pport.java:178)
       
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultAct
ionInvocation.java:348)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:253)
       
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doInterce
pt(DefaultWorkflowInterceptor.java:221)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(Vali
dationInterceptor.java:150)
       
org.apache.struts2.interceptor.validation.AnnotationValidationIntercepto
r.doIntercept(AnnotationValidationInterceptor.java:48)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept
(ConversionErrorInterceptor.java:123)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Pa
rametersInterceptor.java:167)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercep
t(StaticParametersInterceptor.java:105)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInt
erceptor.java:83)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploa
dInterceptor.java:207)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(Mod
elDrivenInterceptor.java:74)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.interce
pt(ScopedModelDrivenInterceptor.java:127)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(
ProfilingActivationInterceptor.java:107)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(
DebuggingInterceptor.java:206)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(Chaini
ngInterceptor.java:115)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterc
eptor.java:143)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(Prepa
reInterceptor.java:121)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(Servle
tConfigInterceptor.java:170)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInte
rceptor.java:123)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercep
t(ExceptionMappingInterceptor.java:176)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java
:50)
       
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:5
04)
       
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher
.java:419)

root cause

javax.servlet.ServletException: java.lang.NoSuchMethodError:
org.apache.tiles.jsp.taglib.InsertAttributeTag.doFinally()V
       
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageCont
extImpl.java:850)
       
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContex
tImpl.java:779)
        org.apache.jsp.layouts.base_jsp._jspService(base_jsp.java:79)
       
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
       
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja
va:374)
       
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
       
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
       
org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(Serv
letTilesRequestContext.java:198)
       
org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(Ser
vletTilesRequestContext.java:179)
       
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
a:606)
       
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
a:246)
       
org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:10
4)
       
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSu
pport.java:178)
       
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultAct
ionInvocation.java:348)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:253)
       
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doInterce
pt(DefaultWorkflowInterceptor.java:221)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(Vali
dationInterceptor.java:150)
       
org.apache.struts2.interceptor.validation.AnnotationValidationIntercepto
r.doIntercept(AnnotationValidationInterceptor.java:48)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept
(ConversionErrorInterceptor.java:123)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Pa
rametersInterceptor.java:167)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercep
t(StaticParametersInterceptor.java:105)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInt
erceptor.java:83)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploa
dInterceptor.java:207)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(Mod
elDrivenInterceptor.java:74)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.interce
pt(ScopedModelDrivenInterceptor.java:127)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(
ProfilingActivationInterceptor.java:107)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(
DebuggingInterceptor.java:206)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(Chaini
ngInterceptor.java:115)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterc
eptor.java:143)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(Prepa
reInterceptor.java:121)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(Servle
tConfigInterceptor.java:170)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInte
rceptor.java:123)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercep
t(ExceptionMappingInterceptor.java:176)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java
:50)
       
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:5
04)
       
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher
.java:419)

root cause

java.lang.NoSuchMethodError:
org.apache.tiles.jsp.taglib.InsertAttributeTag.doFinally()V
       
org.apache.jsp.layouts.base_jsp._jspx_meth_tiles_005finsertAttribute_005
f0(base_jsp.java:107)
        org.apache.jsp.layouts.base_jsp._jspService(base_jsp.java:62)
       
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
       
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja
va:374)
       
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
       
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
       
org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(Serv
letTilesRequestContext.java:198)
       
org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(Ser
vletTilesRequestContext.java:179)
       
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
a:606)
       
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
a:246)
       
org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:10
4)
       
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSu
pport.java:178)
       
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultAct
ionInvocation.java:348)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:253)
       
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doInterce
pt(DefaultWorkflowInterceptor.java:221)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(Vali
dationInterceptor.java:150)
       
org.apache.struts2.interceptor.validation.AnnotationValidationIntercepto
r.doIntercept(AnnotationValidationInterceptor.java:48)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept
(ConversionErrorInterceptor.java:123)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Pa
rametersInterceptor.java:167)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercep
t(StaticParametersInterceptor.java:105)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInt
erceptor.java:83)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploa
dInterceptor.java:207)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(Mod
elDrivenInterceptor.java:74)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.interce
pt(ScopedModelDrivenInterceptor.java:127)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(
ProfilingActivationInterceptor.java:107)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(
DebuggingInterceptor.java:206)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(Chaini
ngInterceptor.java:115)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterc
eptor.java:143)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(Prepa
reInterceptor.java:121)
       
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(Servle
tConfigInterceptor.java:170)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInte
rceptor.java:123)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercep
t(ExceptionMappingInterceptor.java:176)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
       
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
       
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
       
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
       
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java
:50)
       
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:5
04)
       
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher
.java:419)

Re: Dropping in Tiles 2.0.6 breaks my Struts app.

by Antonio Petrelli-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2008/6/9 Gamble, Wesley (WG10) <WG10@...>:
> It appears that there is no doFinally method on the insertAttribute tag.

Yep, you're right. You have to simply clear your web application work
directory (i.e. where JSP pages are compiled, etc.).

Antonio

Re: Dropping in Tiles 2.0.6 breaks my Struts app.

by Chris Pratt :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I don't know if this is the case, but one problem I've seen repeatedly
when updating jar files in a project is forgetting to remove the
original jars from the deployed location.  If you're using Tomcat or
Resin to deploy your war file, it just writes what's there over what
used to be there, so you end up with both jars in the directory, and
that causes some weird a$$ problems.
  (*Chris*)

On Mon, Jun 9, 2008 at 10:32 AM, Gamble, Wesley (WG10) <WG10@...> wrote:

> 2008/6/9 Gamble, Wesley (WG10) <WG10@...>:
>> I attempted to move to Tiles 2.0.6 but it caused problems in my Struts
>> 2.0.11.1 app.
>>
>> In WEB-INF/lib, I simply replaced the 2.0.5 versions of  tiles-api,
>> tiles-core, and tiles-jsp with the 2.0.6 versions and when I went to
> run
>> my first action, I got the following exception:
>
> Please post the complete exception, especially the cause exception.
>
> It appears that there is no doFinally method on the insertAttribute tag.
>
> Here's my layout where I use insertAttribute:
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml">
>  <%@ taglib prefix="s" uri="/struts-tags" %>
>  <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
>  <tiles:insertAttribute name="head" />
>  <body>
>    <div id="content_container">
>      <tiles:insertAttribute name="content" />
>    </div>
>  </body>
> </html>
>
> And here is the full exception:
>
> javax.servlet.ServletException: org.apache.tiles.TilesException:
> ServletException including path '/layouts/base.jsp'.
>
> org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:5
> 15)
>
> org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher
> .java:419)
>
> root cause
>
> org.apache.tiles.TilesException: ServletException including path
> '/layouts/base.jsp'.
>
> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
> a:614)
>
> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
> a:246)
>
> org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:10
> 4)
>
> org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSu
> pport.java:178)
>
> com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultAct
> ionInvocation.java:348)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:253)
>
> com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doInterce
> pt(DefaultWorkflowInterceptor.java:221)
>
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
> thodFilterInterceptor.java:86)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(Vali
> dationInterceptor.java:150)
>
> org.apache.struts2.interceptor.validation.AnnotationValidationIntercepto
> r.doIntercept(AnnotationValidationInterceptor.java:48)
>
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
> thodFilterInterceptor.java:86)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept
> (ConversionErrorInterceptor.java:123)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Pa
> rametersInterceptor.java:167)
>
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
> thodFilterInterceptor.java:86)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercep
> t(StaticParametersInterceptor.java:105)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInt
> erceptor.java:83)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploa
> dInterceptor.java:207)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(Mod
> elDrivenInterceptor.java:74)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.interce
> pt(ScopedModelDrivenInterceptor.java:127)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(
> ProfilingActivationInterceptor.java:107)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(
> DebuggingInterceptor.java:206)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(Chaini
> ngInterceptor.java:115)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterc
> eptor.java:143)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(Prepa
> reInterceptor.java:121)
>
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
> thodFilterInterceptor.java:86)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(Servle
> tConfigInterceptor.java:170)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInte
> rceptor.java:123)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercep
> t(ExceptionMappingInterceptor.java:176)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java
> :50)
>
> org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:5
> 04)
>
> org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher
> .java:419)
>
> root cause
>
> org.apache.tiles.util.TilesIOException: ServletException including path
> '/layouts/base.jsp'.
>
> org.apache.tiles.servlet.context.ServletTilesRequestContext.wrapServletE
> xception(ServletTilesRequestContext.java:298)
>
> org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(Serv
> letTilesRequestContext.java:200)
>
> org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(Ser
> vletTilesRequestContext.java:179)
>
> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
> a:606)
>
> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
> a:246)
>
> org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:10
> 4)
>
> org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSu
> pport.java:178)
>
> com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultAct
> ionInvocation.java:348)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:253)
>
> com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doInterce
> pt(DefaultWorkflowInterceptor.java:221)
>
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
> thodFilterInterceptor.java:86)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(Vali
> dationInterceptor.java:150)
>
> org.apache.struts2.interceptor.validation.AnnotationValidationIntercepto
> r.doIntercept(AnnotationValidationInterceptor.java:48)
>
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
> thodFilterInterceptor.java:86)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept
> (ConversionErrorInterceptor.java:123)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Pa
> rametersInterceptor.java:167)
>
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
> thodFilterInterceptor.java:86)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercep
> t(StaticParametersInterceptor.java:105)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInt
> erceptor.java:83)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploa
> dInterceptor.java:207)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(Mod
> elDrivenInterceptor.java:74)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.interce
> pt(ScopedModelDrivenInterceptor.java:127)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(
> ProfilingActivationInterceptor.java:107)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(
> DebuggingInterceptor.java:206)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(Chaini
> ngInterceptor.java:115)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterc
> eptor.java:143)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(Prepa
> reInterceptor.java:121)
>
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
> thodFilterInterceptor.java:86)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(Servle
> tConfigInterceptor.java:170)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInte
> rceptor.java:123)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercep
> t(ExceptionMappingInterceptor.java:176)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java
> :50)
>
> org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:5
> 04)
>
> org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher
> .java:419)
>
> root cause
>
> javax.servlet.ServletException: java.lang.NoSuchMethodError:
> org.apache.tiles.jsp.taglib.InsertAttributeTag.doFinally()V
>
> org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageCont
> extImpl.java:850)
>
> org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContex
> tImpl.java:779)
>        org.apache.jsp.layouts.base_jsp._jspService(base_jsp.java:79)
>
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja
> va:374)
>
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
>
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>
> org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(Serv
> letTilesRequestContext.java:198)
>
> org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(Ser
> vletTilesRequestContext.java:179)
>
> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
> a:606)
>
> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.jav
> a:246)
>
> org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:10
> 4)
>
> org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSu
> pport.java:178)
>
> com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultAct
> ionInvocation.java:348)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:253)
>
> com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doInterce
> pt(DefaultWorkflowInterceptor.java:221)
>
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
> thodFilterInterceptor.java:86)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:224)
>
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
> ionInvocation.java:223)
>
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
> tack.java:455)
>
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
> cation.java:221)
>
> com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(Vali
> dationInterceptor.java:150)
>
> org.apache.struts2.interceptor.validation.AnnotationValidationIntercepto
> r.doIntercept(AnnotationValidationInterceptor.java:48)
>
> com.opensymphony.xwork2.