zoukankan      html  css  js  c++  java
  • nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.springframework.http.converter.json.MappingJackson2HttpMessageConverter

    背景

    在开发过程中配置如下信息:

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
            <property name="messageConverters">
                <list>
                       <ref bean="mappingJacksonHttpMessageConverter" />
                </list>
            </property>
        </bean>
    
        <bean id="mappingJacksonHttpMessageConverter"
            class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
             <property name = "supportedMediaTypes">
                  <list>
                    <bean class="org.springframework.http.MediaType">
                     <constructor-arg index="0" value="text"/>
                     <constructor-arg index="1" value="plain"/>
                     <constructor-arg index="2" value="UTF-8"/>
                    </bean>
                    <bean class="org.springframework.http.MediaType">
                     <constructor-arg index="0" value="*"/>
                     <constructor-arg index="1" value="*"/>
                     <constructor-arg index="2" value="UTF-8"/>
                    </bean>
                    <bean class="org.springframework.http.MediaType">
                     <constructor-arg index="0" value="text"/>
                     <constructor-arg index="1" value="*"/>
                     <constructor-arg index="2" value="UTF-8"/>
                    </bean>
                     <bean class="org.springframework.http.MediaType">
                     <constructor-arg index="0" value="application"/>
                     <constructor-arg index="1" value="json"/>
                     <constructor-arg index="2" value="UTF-8"/>
                    </bean>
                  </list>
            </property>
        </bean>

    报错信息

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.springframework.http.converter.json.MappingJackson2HttpMessageConverter

    解决过程

    在网络上搜索都说是spring版本与MappingJackson2HttpMessageConverter类不匹配,参考  。但是我检查我的项目中确实是使用的spring4.X版本,所以应该不是这个问题。

    然后在搜索的时候意识到可能是某些jar包引用的版本不对。但是这个又不太好纠错到底哪个jar包问题。无意中发现这个博客中使用的jackson版本和我的不太一样,他用的是2.8.5,我用的是2.9.10.1 ,我的版本貌似太新了,于是死马当活马医试了一下,发现能正常启动了。

    结论

    1.首先要检查spring版本与MappingJackson2HttpMessageConverter是否匹配

    2.尝试更换jackson版本。

    3.一般包类找不到抛NoClassDefFoundError的异常,首先要考虑是否jar没有引用,jar包冲突,或者是版本不对。

  • 相关阅读:
    Java方法
    Java程序控制
    Java基础语法
    编程语言的两大类型
    IntelliJ IDEA优化配置
    Hello World
    Java安装及卸载
    Java来龙去脉
    计算机底层基础
    Day14
  • 原文地址:https://www.cnblogs.com/qingshan-tang/p/12397055.html
Copyright © 2011-2022 走看看