Hi,
we recently migrated from Spring 2.5.6 and Tiles 2.0.5 to Spring 3.0 and Tiles 
2.1.3.
For logging we use log4j.

After the migration, Errors from ExpressionLanguage do not show up in the 
console or application configured logfile anymore. Instead the default 
tiles-errorpage is displayed.

Example to illustrate my issue:
Correct would be:

<c:set var="test" value="${something.test}" />

By accident within the JSP you end up with:

<c:set var="test" value="${something.test2}" />

With Spring 2.5.6 and tiles 2.0.5 this resulted in a nice stacktrace in the 
console with lots of useful hints.

[ERROR] [2010-02-17 19:07:23] (jsp.taglib.RenderTagSupport) Error during 
rendering
javax.servlet.jsp.JspException: ServletException while including page.
        at org.apache.tiles.jsp.context.JspUtil.doInclude(JspUtil.java:102)
        at 
org.apache.tiles.jsp.taglib.InsertTemplateTag.render(InsertTemplateTag.java:64)
        at 
org.apache.tiles.jsp.taglib.RenderTagSupport.execute(RenderTagSupport.java:171)
        at 
org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(RoleSecurityTagSupport.java:75)
        at 
org.apache.tiles.jsp.taglib.ContainerTagSupport.doEndTag(ContainerTagSupport.java:80)
        at 
org.apache.jsp.jsp.Navigation_jsp._jspx_meth_tiles_005finsertTemplate_005f0(Navigation_jsp.java:307)
        at 
org.apache.jsp.jsp.Navigation_jsp._jspx_meth_c_005fif_005f1(Navigation_jsp.java:279)
        at org.apache.jsp.jsp.Navigation_jsp._jspService(Navigation_jsp.java:97)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
        at 
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
        at 
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
        at 
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
        at 
org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:650)
        at 
org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:644)
        at sun.reflect.GeneratedMethodAccessor67.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tiles.jsp.context.JspUtil.doInclude(JspUtil.java:87)
        at 
org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:88)
        at 
org.apache.tiles.jsp.context.JspTilesRequestContext.dispatch(JspTilesRequestContext.java:82)
        at 
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:465)
        at 
org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:140)
        at 
org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:117)
        at 
org.apache.tiles.jsp.taglib.RenderTagSupport.execute(RenderTagSupport.java:171)
        at 
org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(RoleSecurityTagSupport.java:75)
        at 
org.apache.tiles.jsp.taglib.ContainerTagSupport.doEndTag(ContainerTagSupport.java:80)
        at 
org.apache.jsp.jsp.layouts.standard_jsp._jspx_meth_tiles_005finsertAttribute_005f0(standard_jsp.java:1620)
        at 
org.apache.jsp.jsp.layouts.standard_jsp._jspService(standard_jsp.java:464)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
        at 
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
        at 
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
        at 
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
        at 
org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:198)
        at 
org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:185)
        at 
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:419)
        at 
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:370)
        at 
org.springframework.web.servlet.view.tiles2.TilesView.renderMergedOutputModel(TilesView.java:75)
        at 
org.springframework.js.ajax.tiles2.AjaxTilesView.renderMergedOutputModel(AjaxTilesView.java:115)
        at 
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:257)
        at 
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1183)
        at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:902)
        at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
        at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
        at 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Caused by: org.apache.jasper.JasperException: An exception occurred processing 
JSP page /jsp/Test.jsp at line 7
4: 
5: <c:set var="a" value="b" />
6: <%-- Test --%>
7: <c:set var="test" value="${something.test}" />
8: 
Stacktrace:
        at 
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
        at 
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
        at 
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
        at 
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
        at 
org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:621)
        at org.apache.tiles.jsp.context.JspUtil.doInclude(JspUtil.java:98)
        ... 110 more
Caused by: javax.el.PropertyNotFoundException: Property 'test2' not found on 
type org.whatever.blah.something
        at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
        at 
javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
        at javax.el.BeanELResolver.property(BeanELResolver.java:279)
        at javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
        at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
        at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
        at org.apache.el.parser.AstOr.getValue(AstOr.java:42)
        at 
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
        at 
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:935)
        at 
org.apache.jsp.jsp.Menu_jsp._jspx_meth_c_005fif_005f0(Menu_jsp.java:256)
        at org.apache.jsp.jsp.Menu_jsp._jspService(Menu_jsp.java:80)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
        ... 121 more

With Spring 3.0 and Tiles 2.1.3 i only get fewer information and i only get 
them within the TOMCAT_HOME/logs/localhost_XX.log:

SEVERE: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'test2' not found on type 
org.whatever.blah.something
        at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
        at 
javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
        at javax.el.BeanELResolver.property(BeanELResolver.java:279)

Probably a tiles issue. I could imagine that tiles catches the exception that 
happened within a tile without re-throwing the exception.

Anyone else experienced similar problems or knows a solution?

The only things i changed are the spring and tiles libs, no logging 
configuration was changed.

I also posted my problem at the spring forums: 
http://forum.springsource.org/showthread.php?p=284518#post284518

Any help is greatly appreciated 

Best Regards
Andreas


      __________________________________________________________________
Ask a question on any topic and get answers from real people. Go to Yahoo! 
Answers and share what you know at http://ca.answers.yahoo.com

Reply via email to