使用Spring4找不到MappingJacksonHttpMessageConverter

时间:2015-09-02 15:14:14

标签: java spring spring-4

我将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 />

它似乎工作正常但是......为什么?

1 个答案:

答案 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>