【问题标题】:MappingJacksonHttpMessageConverter not found未找到 MappingJacksonHttpMessageConverter
【发布时间】:2015-11-20 15:22:37
【问题描述】:

我正在尝试运行一个调用应用程序上下文但没有成功的 java 批处理(这是一个调用 Camel spring 上下文的 java 应用程序)。这是我在启动期间得到的:

ERROR ApplicationProperties @ addApplicationProperty [28] org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from file [/MessageRouting/src/test/resources/META-INF/spring/LOCALHOST-db-context.xml]; nested exception is java.lang.NoClassDefFoundError: org/springframework/http/converter/json/MappingJacksonHttpMessageConverter
Fatal error! java.lang.RuntimeException: Error loading ClassPathXmlApplicationContext file - src/test/resources/META-INF/spring/LOCALHOST-db-context.xml

我正在使用 spring 4.2.3(昨天更新,可能是它不起作用的原因。它是 4.0.9)。我知道 MappingJacksonHttpMessageConverter 已被 MappingJackson2HttpMessageConverter 取代,但是,我如何告诉 spring 使用新版本???

我遵循了一些建议,并将其添加到我的 pom.xml 中:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.6.3</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.6.3</version>
</dependency>   
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.6.3</version>
</dependency>   

但它不起作用。真正让我生气的是,以前的版本可以工作,即使我回到以前的版本,它现在也不能工作。有什么线索吗?

我也添加了这个,但没有成功:

 <!-- Configure to plugin JSON as request and response in method handler -->
 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
     <property name="messageConverters">
         <list>
             <ref bean="jsonMessageConverter"/>
         </list>
     </property>
 </bean>

 <!-- Configure bean to convert JSON to POJO and vice versa -->
 <bean id="jsonMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />

[顺便说一句,我去年夏天解决了同样的问题,但我忘记了如何:(]

【问题讨论】:

  • 显示 pom ,什么版本的 spring mvc?
  • 版本为 4.2.3.RELEASE

标签: java spring maven applicationcontext


【解决方案1】:

我正在为我们的项目使用 spring 4.0.3。我可以在 spring-web-4.0.3.RELEASE.jar 中看到 MappingJacksonHttpMessageConverter 类。

您是否有任何与 MappingJacksonHttpMessageConverter 相关的配置?因为,我使用的是与以下相同的配置,它对我有用。

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="jsonMessageConverter"/>
            </list>
        </property>
    </bean>
    <bean id="jsonMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>

我们的项目在我们的类路径中也有 jackson-core-asl-1.9.13.jar 和 jackson-mapper-asl-1.9.13.jar。

【讨论】:

    【解决方案2】:

    将这个依赖添加到我的 pom.xml 中的问题已得到解决:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>
    

    【讨论】:

      【解决方案3】:

      使用这个:-

      <!-- Configure bean to convert JSON to POJO and vice versa -->
          <beans:bean id="jsonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
          </beans:bean>   
          <context:component-scan base-package="com.journaldev.spring.controller" />
      

      MappingJackson2HttpMessageConverter替换为MappingJacksonHttpMessageConverter

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-18
        • 2015-01-06
        • 2012-04-08
        • 1970-01-01
        • 2020-09-24
        • 2011-08-02
        相关资源
        最近更新 更多