Hi I'm trying to create some simple template using magnolia blossom module. The problem occurs when I'm trying to display site, it says that it can't render template (.jsp file not found). I'm using external datastore MySQL for FileSystem.
[b]Project Structure[/b] [img]http://i.stack.imgur.com/9KjNM.png[/img] [b]MainTemplate.java[/b] [code ]@Template(id = "websiteModule:pages/mainTemplate", title = "Main Template") @TemplateDescription("Main Template example with Blossom") @Controller public class MainTemplate { @RequestMapping("/mainTemplate") public String render() { return "pages/mainTemplate.jsp"; } @TabFactory("Site Settings") public void homeDialog(UiConfig cfg, TabBuilder tab) { tab.fields( cfg.fields.text("title").label("Title").description("The HTML page title"), cfg.fields.text("metaDescription").label("Meta Description").description("HTML Meta Description of the web site"), cfg.fields.text("metaKeywords").label("Meta Keywords").description("HTML Meta Keywords of the web site") ); } } [/code] [b]blossom-servlet.xml[/b] [code] <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:annotation-config/> <context:component-scan base-package="com.brightit" use-default-filters="false"> <context:include-filter type="annotation" expression="info.magnolia.module.blossom.annotation.Template"/> <context:include-filter type="annotation" expression="info.magnolia.module.blossom.annotation.Area"/> <context:include-filter type="annotation" expression="info.magnolia.module.blossom.annotation.DialogFactory"/> <context:include-filter type="annotation" expression="info.magnolia.module.blossom.annotation.VirtualURIMapper"/> <context:include-filter type="assignable" expression="info.magnolia.cms.beans.config.VirtualURIMapping"/> </context:component-scan> <bean class="info.magnolia.module.blossom.web.BlossomRequestMappingHandlerAdapter"> <property name="customArgumentResolvers"> <list> <bean class="info.magnolia.module.blossom.web.BlossomHandlerMethodArgumentResolver" /> </list> </property> <!-- For @Valid - JSR-303 Bean Validation API --> <property name="webBindingInitializer"> <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"> <property name="validator"> <bean class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" /> </property> </bean> </property> <property name="redirectPatterns"> <list> <value>website:*</value> </list> </property> </bean> <bean class="info.magnolia.module.blossom.preexecution.BlossomHandlerMapping"> <property name="targetHandlerMappings"> <list> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"> <property name="useSuffixPatternMatch" value="false" /> </bean> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> </list> </property> </bean> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /> <bean class="info.magnolia.module.blossom.view.UuidRedirectViewResolver"> <property name="order" value="1" /> </bean> <!-- JSP - renders all views that end with .jsp --> <bean class="info.magnolia.module.blossom.view.TemplateViewResolver"> <property name="order" value="2"/> <property name="prefix" value="/templates/websiteModule/"/> <property name="viewNames" value="*.jsp"/> <property name="viewRenderer"> <bean class="info.magnolia.module.blossom.view.JspTemplateViewRenderer"> <property name="contextAttributes"> <map> <entry key="damfn"> <bean class="info.magnolia.rendering.renderer.ContextAttributeConfiguration"> <property name="name" value="damfn"/> <property name="componentClass" value="info.magnolia.dam.templating.functions.DamTemplatingFunctions"/> </bean> </entry> </map> </property> </bean> </property> </bean> <!-- Freemarker - renders all views that end with .ftl --> <bean class="info.magnolia.module.blossom.view.TemplateViewResolver"> <property name="order" value="3"/> <property name="prefix" value="/websiteModule/"/> <property name="viewNames" value="*.ftl"/> <property name="viewRenderer"> <bean class="info.magnolia.module.blossom.view.FreemarkerTemplateViewRenderer"> <property name="contextAttributes"> <map> <entry key="cms"> <bean class="info.magnolia.rendering.renderer.ContextAttributeConfiguration"> <property name="name" value="cms"/> <property name="componentClass" value="info.magnolia.templating.freemarker.Directives"/> </bean> </entry> <entry key="cmsfn"> <bean class="info.magnolia.rendering.renderer.ContextAttributeConfiguration"> <property name="name" value="cmsfn"/> <property name="componentClass" value="info.magnolia.templating.functions.TemplatingFunctions"/> </bean> </entry> <entry key="stkfn"> <bean class="info.magnolia.rendering.renderer.ContextAttributeConfiguration"> <property name="name" value="stkfn"/> <property name="componentClass" value="info.magnolia.module.templatingkit.functions.STKTemplatingFunctions"/> </bean> </entry> <!-- If you need the DAM templating functions in Freemarker uncomment this block to have them set as an attribute named 'damfn'. --> <entry key="damfn"> <bean class="info.magnolia.rendering.renderer.ContextAttributeConfiguration"> <property name="name" value="damfn"/> <property name="componentClass" value="info.magnolia.dam.templating.functions.DamTemplatingFunctions"/> </bean> </entry> </map> </property> </bean> </property> </bean> </beans> [/code] [b] Exception[/b] [code] 2015-03-29 13:04:01,494 ERROR rendering.engine.ModeDependentRenderExceptionHandler: Error while rendering [/brightit-website] with template [websiteModule:pages/mainTemplate] for URI [/brightit-website.html=mgnlPreview=false&mgnlChannel=desktop]: RenderException: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is info.magnolia.rendering.engine.RenderException: Can't render template /templates/websiteModule/pages/mainTemplate.jsp info.magnolia.rendering.engine.RenderException: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is info.magnolia.rendering.engine.RenderException: Can't render template /templates/websiteModule/pages/mainTemplate.jsp at info.magnolia.module.blossom.render.BlossomTemplateRenderer.render(BlossomTemplateRenderer.java:86) at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:106) at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$f67b9c97.render(<generated>) at info.magnolia.rendering.engine.RenderingFilter.render(RenderingFilter.java:204) at info.magnolia.rendering.engine.RenderingFilter.handleTemplateRequest(RenderingFilter.java:139) at info.magnolia.rendering.engine.RenderingFilter.doFilter(RenderingFilter.java:91) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.module.blossom.preexecution.BlossomFilter.doFilter(BlossomFilter.java:82) at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.rendering.model.ModelExecutionFilter.doFilter(ModelExecutionFilter.java:101) at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.filters.AggregatorFilter.doFilter(AggregatorFilter.java:103) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.filters.RepositoryMappingFilter.doFilter(RepositoryMappingFilter.java:108) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:74) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:68) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) 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:58) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:73) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:84) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:83) at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:94) at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.module.templatingkit.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:112) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:82) at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:73) at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:120) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82) at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:89) at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.module.devicedetection.filter.DeviceDetectionFilter.doFilter(DeviceDetectionFilter.java:71) at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:112) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:129) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80) at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65) at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89) at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:106) at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:66) at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:107) at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:93) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is info.magnolia.rendering.engine.RenderException: Can't render template /templates/websiteModule/pages/mainTemplate.jsp at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:965) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844) at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) at info.magnolia.module.blossom.render.BlossomDispatcherServlet.forward(BlossomDispatcherServlet.java:132) at info.magnolia.module.blossom.render.BlossomTemplateRenderer.render(BlossomTemplateRenderer.java:78) ... 113 more Caused by: info.magnolia.rendering.engine.RenderException: Can't render template /templates/websiteModule/pages/mainTemplate.jsp at info.magnolia.rendering.renderer.JspRenderer.onRender(JspRenderer.java:80) at info.magnolia.module.blossom.view.JspTemplateViewRenderer.onRender(JspTemplateViewRenderer.java:95) at info.magnolia.rendering.renderer.AbstractRenderer.render(AbstractRenderer.java:151) at info.magnolia.module.blossom.view.TemplateView.renderMergedOutputModel(TemplateView.java:74) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264) 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:953) ... 118 more Caused by: java.lang.RuntimeException: javax.servlet.ServletException: File "/templates/websiteModule/pages/mainTemplate.jsp" not found at info.magnolia.context.WebContextImpl.include(WebContextImpl.java:197) at info.magnolia.rendering.renderer.JspRenderer.onRender(JspRenderer.java:74) ... 127 more Caused by: javax.servlet.ServletException: File "/templates/websiteModule/pages/mainTemplate.jsp" not found at org.apache.jasper.servlet.JspServlet.handleMissingResource(JspServlet.java:417) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:384) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:74) at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:107) at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:93) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:604) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:543) at info.magnolia.module.blossom.support.ForwardRequestWrapper$1.include(ForwardRequestWrapper.java:192) at info.magnolia.context.WebContextImpl.include(WebContextImpl.java:194) ... 128 more [/code] If I'm using FreeMaker(.ftl) instead of .jsp everything works fine. Any ideas what am I doing wrong? -- Context is everything: http://forum.magnolia-cms.com/forum/thread.html?threadId=1da68b77-585c-407f-bbec-2fe5a2b3754e ---------------------------------------------------------------- Alternatively, use our forums: http://forum.magnolia-cms.com/ To unsubscribe, E-mail to: <dev-list-unsubscr...@magnolia-cms.com> ----------------------------------------------------------------