[MAGNOLIA-5651] Using JSP Taglibs with Freemarker on Windows Created: 29/Jan/14  Updated: 04/Feb/14  Resolved: 30/Jan/14

Status: Closed
Project: Magnolia
Component/s: None
Affects Version/s: 4.5.8
Fix Version/s: 4.5.16, 5.2.2

Type: Bug Priority: Major
Reporter: Jean-Charles Robert Assignee: Tobias Mattsson
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:
  • Magnolia 4.5.8
  • Maven 3.0.4
  • Java 1.7
  • Jetty Maven Plugin 8.1.14.v20131031
  • Windows 7 - 64Bit
  • IDE IntelliJ Idea 12

Attachments: Text File MAGNOLIA-5651.patch     File magnolia-core-4.5.8.jar    
Issue Links:
causality
caused by MAGNOLIA-3092 freemarker: support for loading tagli... Closed
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Date of First Response:

 Description   

I want to use the pre-execution of components with the use of blossom Taglib.
Unfortunately the use of JspTaglibs with freemarker seems generally not to work.
For example:

[#assign blossom=JspTaglibs["blossom-taglib"] /]
[#assign form=JspTaglibs["http://www.springframework.org/tags/form"] /]
  • In the blossom-sample project I try to use freemarker instead of jsp and wrote the contactForm.ftl, I got the same error.
  • Blossom version 2.0.2, Spring 3.2.4.RELEASE

Here is the full stacktrace

2014-01-29 11:16:54,601 ERROR freemarker.runtime                                : Template processing error: "Could not load taglib information for blossom-taglib"

Could not load taglib information for blossom-taglib
The problematic instruction:
----------
==> assignment: blossom=JspTaglibs["blossom-taglib"] [on line 2, column 1 in WEB-INF/blossomSampleModule/templates/components/contactForm.ftl]
----------

Java backtrace for programmers:
----------
freemarker.template.TemplateModelException: Could not load taglib information for blossom-taglib
        at freemarker.ext.jsp.TaglibFactory.get(TaglibFactory.java:207)
        at freemarker.core.DynamicKeyName.dealWithStringKey(DynamicKeyName.java:136)
        at freemarker.core.DynamicKeyName._getAsTemplateModel(DynamicKeyName.java:94)
        at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
        at freemarker.core.Assignment.accept(Assignment.java:90)
        at freemarker.core.Environment.visit(Environment.java:221)
        at freemarker.core.MixedContent.accept(MixedContent.java:92)
        at freemarker.core.Environment.visit(Environment.java:221)
        at freemarker.core.Environment.process(Environment.java:199)
        at freemarker.template.Template.process(Template.java:237)
        at info.magnolia.freemarker.FreemarkerHelper.render(FreemarkerHelper.java:155)
        at info.magnolia.rendering.renderer.FreemarkerRenderer.onRender(FreemarkerRenderer.java:85)
        at info.magnolia.module.blossom.view.FreemarkerTemplateViewRenderer.onRender(FreemarkerTemplateViewRenderer.java:125)
        at info.magnolia.rendering.renderer.AbstractRenderer.render(AbstractRenderer.java:139)
        at info.magnolia.module.blossom.view.TemplateView.renderMergedOutputModel(TemplateView.java:74)
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:263)
        at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
        at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
        at info.magnolia.module.blossom.render.BlossomDispatcherServlet.include(BlossomDispatcherServlet.java:139)
        at info.magnolia.module.blossom.render.BlossomTemplateRenderer.render(BlossomTemplateRenderer.java:76)
        at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:97)
        at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$226fee84.render(<generated>)
        at info.magnolia.templating.elements.ComponentElement.begin(ComponentElement.java:151)
        at info.magnolia.templating.jsp.cms.AbstractTag.doTag(AbstractTag.java:97)
        at org.apache.jsp.WEB_002dINF.blossomSampleModule.templates.areas.main_jsp._jspx_meth_cms_component_0(main_jsp.java:135)
        at org.apache.jsp.WEB_002dINF.blossomSampleModule.templates.areas.main_jsp._jspx_meth_c_forEach_0(main_jsp.java:103)
        at org.apache.jsp.WEB_002dINF.blossomSampleModule.templates.areas.main_jsp._jspService(main_jsp.java:69)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.eclipse.jetty.servlet.JspPropertyGroupServlet.service(JspPropertyGroupServlet.java:132)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)
        at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:75)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:108)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:94)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:575)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:183)
        at info.magnolia.module.blossom.support.IncludeRequestWrapper$1.include(IncludeRequestWrapper.java:82)
        at info.magnolia.context.WebContextImpl.include(WebContextImpl.java:198)
        at info.magnolia.rendering.renderer.JspRenderer.onRender(JspRenderer.java:63)
        at info.magnolia.module.blossom.view.JspTemplateViewRenderer.onRender(JspTemplateViewRenderer.java:87)
        at info.magnolia.rendering.renderer.AbstractRenderer.render(AbstractRenderer.java:139)
        at info.magnolia.module.blossom.view.TemplateView.renderMergedOutputModel(TemplateView.java:74)
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:263)
        at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
        at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
        at info.magnolia.module.blossom.render.BlossomDispatcherServlet.include(BlossomDispatcherServlet.java:139)
        at info.magnolia.module.blossom.render.BlossomTemplateRenderer.render(BlossomTemplateRenderer.java:76)
        at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:97)
        at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$226fee84.render(<generated>)
        at info.magnolia.templating.elements.AreaElement.end(AreaElement.java:301)
        at info.magnolia.templating.jsp.cms.AbstractTag.doTag(AbstractTag.java:102)
        at org.apache.jsp.WEB_002dINF.blossomSampleModule.templates.pages.main_jsp._jspx_meth_cms_area_0(main_jsp.java:209)
        at org.apache.jsp.WEB_002dINF.blossomSampleModule.templates.pages.main_jsp._jspService(main_jsp.java:119)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.eclipse.jetty.servlet.JspPropertyGroupServlet.service(JspPropertyGroupServlet.java:132)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)
        at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:75)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:108)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:94)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:575)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:183)
        at info.magnolia.context.WebContextImpl.include(WebContextImpl.java:198)
        at info.magnolia.rendering.renderer.JspRenderer.onRender(JspRenderer.java:63)
        at info.magnolia.module.blossom.view.JspTemplateViewRenderer.onRender(JspTemplateViewRenderer.java:87)
        at info.magnolia.rendering.renderer.AbstractRenderer.render(AbstractRenderer.java:139)
        at info.magnolia.module.blossom.view.TemplateView.renderMergedOutputModel(TemplateView.java:74)
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:263)
        at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
        at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
        at info.magnolia.module.blossom.render.BlossomDispatcherServlet.forward(BlossomDispatcherServlet.java:124)
        at info.magnolia.module.blossom.render.BlossomTemplateRenderer.render(BlossomTemplateRenderer.java:78)
        at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:97)
        at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$226fee84.render(<generated>)
        at info.magnolia.rendering.engine.RenderingFilter.render(RenderingFilter.java:173)
        at info.magnolia.rendering.engine.RenderingFilter.doFilter(RenderingFilter.java:113)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.module.blossom.preexecution.BlossomFilter.doFilter(BlossomFilter.java:84)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.rendering.model.ModelExecutionFilter.doFilter(ModelExecutionFilter.java:107)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.InterceptFilter.doFilter(InterceptFilter.java:130)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.AggregatorFilter.doFilter(AggregatorFilter.java:105)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:60)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.RepositoryMappingFilter.doFilter(RepositoryMappingFilter.java:101)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:67)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:77)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:67)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:70)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58)
        at info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:66)
        at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:153)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:76)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:84)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:60)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:86)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:93)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:83)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:75)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:93)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:91)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:102)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:131)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:67)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:108)
        at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:108)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:94)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:370)
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
        at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.net.MalformedURLException: P:\workspace-idea\blossom\blossom.2.0.x\samples\magnolia-blossom-sample-webapp\target\magnolia-blossom-sample-webapp-2.0-SNAPSHOT\WEB-INF\lib\standard-1.1.2.jar
        at org.eclipse.jetty.webapp.WebAppContext.getResource(WebAppContext.java:351)
        at org.mortbay.jetty.plugin.JettyWebAppContext.getResource(JettyWebAppContext.java:338)
        at org.eclipse.jetty.webapp.WebAppContext$Context.getResource(WebAppContext.java:1325)
        at info.magnolia.freemarker.FreemarkerServletContextWrapper.getResource(FreemarkerServletContextWrapper.java:84)
        at freemarker.ext.jsp.TaglibFactory.addLocationsFromJarFile(TaglibFactory.java:392)
        at freemarker.ext.jsp.TaglibFactory.addLocationsFromWebApp(TaglibFactory.java:359)
        at freemarker.ext.jsp.TaglibFactory.get(TaglibFactory.java:168)
        ... 229 more
2014-01-29 11:16:55,896 ERROR freemarker.runtime                                : Template processing error: "Could not load taglib information for http://www.springframework.org/tags/form"

Could not load taglib information for http://www.springframework.org/tags/form
The problematic instruction:
----------
==> assignment: from=JspTaglibs["http://www.springframework.org/tags/form"] [on line 3, column 1 in WEB-INF/blossomSampleModule/templates/components/contactForm.ftl]
----------

Java backtrace for programmers:
----------
freemarker.template.TemplateModelException: Could not load taglib information for http://www.springframework.org/tags/form
        at freemarker.ext.jsp.TaglibFactory.get(TaglibFactory.java:207)
        at freemarker.core.DynamicKeyName.dealWithStringKey(DynamicKeyName.java:136)
        at freemarker.core.DynamicKeyName._getAsTemplateModel(DynamicKeyName.java:94)
        at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
        at freemarker.core.Assignment.accept(Assignment.java:90)
        at freemarker.core.Environment.visit(Environment.java:221)
        at freemarker.core.MixedContent.accept(MixedContent.java:92)
        at freemarker.core.Environment.visit(Environment.java:221)
        at freemarker.core.Environment.process(Environment.java:199)
        at freemarker.template.Template.process(Template.java:237)
        at info.magnolia.freemarker.FreemarkerHelper.render(FreemarkerHelper.java:155)
        at info.magnolia.rendering.renderer.FreemarkerRenderer.onRender(FreemarkerRenderer.java:85)
        at info.magnolia.module.blossom.view.FreemarkerTemplateViewRenderer.onRender(FreemarkerTemplateViewRenderer.java:125)
        at info.magnolia.rendering.renderer.AbstractRenderer.render(AbstractRenderer.java:139)
        at info.magnolia.module.blossom.view.TemplateView.renderMergedOutputModel(TemplateView.java:74)
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:263)
        at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
        at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
        at info.magnolia.module.blossom.render.BlossomDispatcherServlet.include(BlossomDispatcherServlet.java:139)
        at info.magnolia.module.blossom.render.BlossomTemplateRenderer.render(BlossomTemplateRenderer.java:76)
        at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:97)
        at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$226fee84.render(<generated>)
        at info.magnolia.templating.elements.ComponentElement.begin(ComponentElement.java:151)
        at info.magnolia.templating.jsp.cms.AbstractTag.doTag(AbstractTag.java:97)
        at org.apache.jsp.WEB_002dINF.blossomSampleModule.templates.areas.main_jsp._jspx_meth_cms_component_0(main_jsp.java:135)
        at org.apache.jsp.WEB_002dINF.blossomSampleModule.templates.areas.main_jsp._jspx_meth_c_forEach_0(main_jsp.java:103)
        at org.apache.jsp.WEB_002dINF.blossomSampleModule.templates.areas.main_jsp._jspService(main_jsp.java:69)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.eclipse.jetty.servlet.JspPropertyGroupServlet.service(JspPropertyGroupServlet.java:132)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)
        at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:75)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:108)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:94)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:575)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:183)
        at info.magnolia.module.blossom.support.IncludeRequestWrapper$1.include(IncludeRequestWrapper.java:82)
        at info.magnolia.context.WebContextImpl.include(WebContextImpl.java:198)
        at info.magnolia.rendering.renderer.JspRenderer.onRender(JspRenderer.java:63)
        at info.magnolia.module.blossom.view.JspTemplateViewRenderer.onRender(JspTemplateViewRenderer.java:87)
        at info.magnolia.rendering.renderer.AbstractRenderer.render(AbstractRenderer.java:139)
        at info.magnolia.module.blossom.view.TemplateView.renderMergedOutputModel(TemplateView.java:74)
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:263)
        at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
        at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
        at info.magnolia.module.blossom.render.BlossomDispatcherServlet.include(BlossomDispatcherServlet.java:139)
        at info.magnolia.module.blossom.render.BlossomTemplateRenderer.render(BlossomTemplateRenderer.java:76)
        at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:97)
        at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$226fee84.render(<generated>)
        at info.magnolia.templating.elements.AreaElement.end(AreaElement.java:301)
        at info.magnolia.templating.jsp.cms.AbstractTag.doTag(AbstractTag.java:102)
        at org.apache.jsp.WEB_002dINF.blossomSampleModule.templates.pages.main_jsp._jspx_meth_cms_area_0(main_jsp.java:209)
        at org.apache.jsp.WEB_002dINF.blossomSampleModule.templates.pages.main_jsp._jspService(main_jsp.java:119)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.eclipse.jetty.servlet.JspPropertyGroupServlet.service(JspPropertyGroupServlet.java:132)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)
        at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:75)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:108)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:94)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:575)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:183)
        at info.magnolia.context.WebContextImpl.include(WebContextImpl.java:198)
        at info.magnolia.rendering.renderer.JspRenderer.onRender(JspRenderer.java:63)
        at info.magnolia.module.blossom.view.JspTemplateViewRenderer.onRender(JspTemplateViewRenderer.java:87)
        at info.magnolia.rendering.renderer.AbstractRenderer.render(AbstractRenderer.java:139)
        at info.magnolia.module.blossom.view.TemplateView.renderMergedOutputModel(TemplateView.java:74)
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:263)
        at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
        at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
        at info.magnolia.module.blossom.render.BlossomDispatcherServlet.forward(BlossomDispatcherServlet.java:124)
        at info.magnolia.module.blossom.render.BlossomTemplateRenderer.render(BlossomTemplateRenderer.java:78)
        at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:97)
        at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$226fee84.render(<generated>)
        at info.magnolia.rendering.engine.RenderingFilter.render(RenderingFilter.java:173)
        at info.magnolia.rendering.engine.RenderingFilter.doFilter(RenderingFilter.java:113)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.module.blossom.preexecution.BlossomFilter.doFilter(BlossomFilter.java:84)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.rendering.model.ModelExecutionFilter.doFilter(ModelExecutionFilter.java:107)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.InterceptFilter.doFilter(InterceptFilter.java:130)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.AggregatorFilter.doFilter(AggregatorFilter.java:105)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:60)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.RepositoryMappingFilter.doFilter(RepositoryMappingFilter.java:101)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:67)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:77)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:67)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:70)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58)
        at info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:66)
        at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:153)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:76)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:84)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:60)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:86)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:93)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:83)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:75)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:93)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:85)
        at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:91)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:102)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:131)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:67)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
        at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:108)
        at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:108)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:94)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:370)
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
        at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.net.MalformedURLException: P:\workspace-idea\blossom\blossom.2.0.x\samples\magnolia-blossom-sample-webapp\target\magnolia-blossom-sample-webapp-2.0-SNAPSHOT\WEB-INF\lib\standard-1.1.2.jar
        at org.eclipse.jetty.webapp.WebAppContext.getResource(WebAppContext.java:351)
        at org.mortbay.jetty.plugin.JettyWebAppContext.getResource(JettyWebAppContext.java:338)
        at org.eclipse.jetty.webapp.WebAppContext$Context.getResource(WebAppContext.java:1325)
        at info.magnolia.freemarker.FreemarkerServletContextWrapper.getResource(FreemarkerServletContextWrapper.java:84)
        at freemarker.ext.jsp.TaglibFactory.addLocationsFromJarFile(TaglibFactory.java:392)
        at freemarker.ext.jsp.TaglibFactory.addLocationsFromWebApp(TaglibFactory.java:359)
        at freemarker.ext.jsp.TaglibFactory.get(TaglibFactory.java:168)
        ... 229 more


 Comments   
Comment by Tobias Mattsson [ 29/Jan/14 ]

Hi Jean-Charles,

This appears to be a bug that only affects windows machines. Are you running the sample as is with Magnolia 4.5.8 ?

Which version of Jetty is this and how did you start it ? With jetty:run-war ?

Comment by Jan Haderka [ 29/Jan/14 ]

This should work. Any chance you are running your web app from IDE? There used to be a bug that required you to extract the tld and place it directly under WEB-INF/lib in some older version of Eclipse WTP. There was also but w/ resolving TLD path in FM itself, but afaik that was solved long time ago.

Comment by Jean-Charles Robert [ 29/Jan/14 ]

Sorry I forgot to precise my configuration:

  • Magnolia 4.5.8
  • Maven 3.0.4
  • Java 1.7
  • Jetty Maven Plugin 8.1.14.v20131031
  • Windows 7 - 64Bit
  • IDE IntelliJ Idea 12

I start the webapp with mvn jetty:run-war

Comment by Tobias Mattsson [ 29/Jan/14 ]

This issue affects users using freemarker with JSP taglibs on Windows.

The cause of the problem is the trickery done in FreemarkerServletContextWrapper, introduced with MAGNOLIA-3092.

FreemarkerServletContextWrapper.getResourcePaths() returns absolute paths in the file system to make freemarker find jars that are not in the WEB-INF/lib directory. On windows machines these will include the drive letter. Later when freemarker calls getResource() with one of these paths FreemarkerServletContextWrapper will first call the wrapped ServletContext to let it have a go, it however fails because it refuses to accept an argument that doesn't start with a slash.

Comment by Tobias Mattsson [ 29/Jan/14 ]

Magnolia Core 4.5.8 patched for MAGNOLIA-5651

Comment by Tobias Mattsson [ 29/Jan/14 ]

Hi Jean-Charles,

I have attached a patched magnolia-core jar. Can you test if this solves your problems?

Comment by Jean-Charles Robert [ 29/Jan/14 ]

Hello Tobias,

I tested the application with the patch and it solved the problem. I am able now to use blossom Taglib or even Spring Taglibs like spring-form

4.5.8 is used in the blosoom-sample-project, but we need and have Magnolia 4.5.11 for our application.
Can you please make a patch for 4.5.11 (or plan it for the next release 4.5.12 ?
In the meantime maybe just the source-code of modified classes could help in order to integrate the fix easily.
Thank you!

Comment by Tobias Mattsson [ 29/Jan/14 ]

Hi Jean-Charles,

That's great, Ill schedule this fix for the next 4.5 maintenance release. There's a patch file attached to this ticket should you need it earlier.

The sample should work fine if you update it to 4.5.11. I would recommend to use the maven archetypes described in the getting started guide [1] when starting new projects.

[1] http://documentation.magnolia-cms.com/display/DOCS45/Getting+started+with+Blossom

Generated at Mon Feb 12 04:07:07 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.