使用Spring4找不到MappingJacksonHttpMessageConverter

And*_*rdi 7 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  
Run Code Online (Sandbox Code Playgroud)

我从4.1版开始在互联网上阅读.它不再受支持了; 我检查过,新版本在应用程序类路径上可用(我导入了spring-web依赖项).(Spring 4和Rest WS集成)

看来春天还在寻找老版本的Converter.它可能取决于我在我的应用程序上下文中的一些东西,但问题是,我如何"告诉Spring"使用新版本?

- 更新
我评论道

<mvc:annotation-driven />
Run Code Online (Sandbox Code Playgroud)

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

Cor*_*son 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>
Run Code Online (Sandbox Code Playgroud)