我将Spring框架从3.x迁移到4.2.RELEASE但是,当我启动jUnit时,我收到此错误:
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from URL [file:src/test/resources/applicationContext.xml]; nested exception is java.lang.NoClassDefFoundError: org/springframework/http/converter/json/MappingJacksonHttpMessageConverter
我从4.1版开始在互联网上阅读。它不再受支持了;我检查过,新版本在应用程序类路径上可用(我导入了spring-web依赖项)。 (Spring 4 and Rest WS integration)
看来春天还在寻找旧版本的Converter。它可能取决于我在应用程序上下文中的内容,但问题是,我怎样才能告诉Spring"使用新版本?
- 更新
我评论了
<mvc:annotation-driven />
它似乎工作正常但是......为什么?
答案 0 :(得分:12)
Spring 4中有一个较新版本的类:使用org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
(注意'2')。
在我的REST servlet的Spring配置文件中,我将它配置如下(我将自定义的objectMapper添加到它,但你可以省略它):
<mvc:annotation-driven>
<mvc:message-converters>
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="s3.util.json.CustomJsonMapper" />
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>