带Freemarker的ClassNotFoundException

时间:2013-11-07 20:51:54

标签: java spring-mvc freemarker

对不起我的noobie问题,但我无法理解。

我有一个运行在GAE上的应用程序,使用Spring MVC,我正在尝试添加Free Marker作为模板语言。

在我的pom.xml中,我有:

<dependency>
 <groupId>org.freemarker</groupId>
 <artifactId>freemarker</artifactId>
 <version>2.3.20</version>
</dependency>

另外,在我的调度程序配置中,我已经配置了这样的freemarker视图解析器:

<!-- freemarker config -->
<bean id="freemarkerConfig"
    class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="templateLoaderPath" value="/WEB-INF/views/" />
</bean>

<!-- View resolvers can also be configured with ResourceBundles or XML files. 
    If you need different view resolving based on Locale, you have to use the 
    resource bundle resolver. -->
<bean id="viewResolver"
      class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <property name="cache" value="true" />
    <property name="prefix" value="" />
    <property name="suffix" value=".ftl" />
</bean>

当我使用Eclipse启动Web服务器时,我得到一个classnotfound异常(见下文),但我无法弄清楚缺少什么以及如何添加它=(

你能帮帮我吗?

谢谢!

2013-11-07 17:30:17.097:WARN::Nested in org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0': Invocation of init method failed; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer] for bean with name 'freemarkerConfig' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: problem with class file or dependent class; nested exception is 
java.lang.NoClassDefFoundError: org/springframework/ui/freemarker/FreeMarkerConfigurationFactory|Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer] for bean with name 'freemarkerConfig' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: org/springframework/ui/freemarker/FreeMarkerConfigurationFactory:
java.lang.ClassNotFoundException: org.springframework.ui.freemarker.FreeMarkerConfigurationFactory

1 个答案:

答案 0 :(得分:8)

您必须将spring-context-support添加到项目中。将其添加到您的pom.xml:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>3.2.4.RELEASE</version>
</dependency>