Uploaded image for project: 'Blossom'
  1. Blossom
  2. BLOSSOM-161

Exception with use of the annotation-driven for Spring MVC Controller

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Neutral Neutral
    • None
    • 2.0.2
    • None
    • None
    • * Magnolia 4.5.11
      * Spring 3.2.4.RELEASE
      * Maven 3.0.4
      * Java 1.7
      * Jetty Maven Plugin 6.1.5
      * Windows 7 - 64Bit
      * IDE IntelliJ Idea 12

      I would like to use the @Valid annotation in order to validate my formular fields with annotations (@NotNull, @Email...)
      Therefor I added the <mvc:annotation-driven /> in my blossom.servlet.xml to enable the annotation-driven Spring MVC Controller programming model.

      I become this exception by page rendering:

      14-01-29 10:51:53 ERROR AUTHOR[btpool0-7]info.magnolia.rendering.engine.ModeDependentRenderExceptionHandler: Error while rendering [/de/main] with template [module-de:pages/mainPage]: RenderException: org.springframework
      .web.util.NestedServletException: Request processing failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [javax.jcr.Node]: Specified class is an interface
      info.magnolia.rendering.engine.RenderException: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean c
      lass [javax.jcr.Node]: Specified class is an interface
              at info.magnolia.module.blossom.render.BlossomTemplateRenderer.render(BlossomTemplateRenderer.java:86)
              at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:107)
              at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$96bbb6cf.render(<generated>)
              at info.magnolia.rendering.engine.RenderingFilter.render(RenderingFilter.java:190)
              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.module.softlocking.filters.SoftLockingFilter.doFilter(SoftLockingFilter.java:164)
              at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
              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:103)
              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.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.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.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.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.module.extendedtemplatingkit.filters.CrossSiteSecurityFilter.doFilter(CrossSiteSecurityFilter.java:104)
              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.module.templatingkit.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:106)
              at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
              at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
              at info.magnolia.module.extendedtemplatingkit.filters.MultiSiteFilter.doFilter(MultiSiteFilter.java:106)
              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.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:73)
              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.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:52)
              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.UnicodeNormalizationFilter.doFilter(UnicodeNormalizationFilter.java:90)
              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.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.module.devicedetection.filter.DeviceDetectionFilter.doFilter(DeviceDetectionFilter.java:73)
              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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
              at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
              at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
              at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
              at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
              at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
              at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
              at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
              at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
              at org.mortbay.jetty.Server.handle(Server.java:313)
              at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
              at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830)
              at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
              at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
              at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
              at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
              at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
      Caused by: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [javax.jcr.Node]: Specified clas
      s is an interface
              at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948)
              at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
              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)
              ... 147 more
      Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [javax.jcr.Node]: Specified class is an interface
              at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:102)
              at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.createAttribute(ModelAttributeMethodProcessor.java:136)
              at org.springframework.web.servlet.mvc.method.annotation.ServletModelAttributeMethodProcessor.createAttribute(ServletModelAttributeMethodProcessor.java:81)
              at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.resolveArgument(ModelAttributeMethodProcessor.java:101)
              at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:77)
              at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:162)
              at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:123)
              at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
              at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
              at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
              at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
              at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
              at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
              at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
              ... 152 more
      
      • It seems that in the @RequestMapping method, the Node page and Node content are not resolved.
      • I read too that "with Spring 3.0, this annotation-driven tag works in Servlet MVC only!". Is the Blossom Servlet able to do it correctly too?
        Did I miss something in my configuration?
        Or how can the Blossom Servlet resolve this nodes?
      • Blossom version 2.0.2 with spring 3.2.4.RELEASE

      Here is my configuration file

      blossom-servlet.xml
       
      <?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"
             xmlns:mvc="http://www.springframework.org/schema/mvc"
             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
             http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
      
        <context:annotation-config/>
        <mvc:annotation-driven />
      
        <context:component-scan base-package="com.aperto.bos" 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:component-scan>
      
        <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
        <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
          <property name="customArgumentResolver">
            <bean class="info.magnolia.module.blossom.web.BlossomWebArgumentResolver" />
          </property>
        </bean>
        <bean class="info.magnolia.module.blossom.preexecution.BlossomHandlerMapping">
          <property name="targetHandlerMappings">
            <list>
              <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
                <property name="useDefaultSuffixPattern" value="false" />
              </bean>
              <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
            </list>
          </property>
        </bean>
        <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/module/"/>
          <property name="viewNames" value="*.jsp"/>
          <property name="viewRenderer">
            <bean class="info.magnolia.module.blossom.view.JspTemplateViewRenderer"/>
          </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="cache" value="false"/>
          <property name="prefix" value="/templates/module/"/>
          <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 name="templatingFuntions" 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="cmsfn"/>
                      <property name="componentClass" value="info.magnolia.module.templatingkit.functions.STKTemplatingFunctions"/>
                    </bean>
                  </entry>
                </map>
              </property>
            </bean>
          </property>
        </bean>
      
      
      </beans>
      

      Thank you for your help.

        Acceptance criteria

              tmattsson Tobias Mattsson
              jcrobert Jean-Charles Robert
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: