升级 jackson-databind 版本后无法启动应用程序

Nis*_*til 5 java maven spring-boot jackson-databind

我正在开发 Spring Boot 应用程序,我想 jackson-databind2.9.10.2升级到2.10.2。以下是我的 pom.xml 的片段以及升级依赖项后遇到的错误:
pom.xml:

         <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
            <version>2.9.9</version>
            <exclusions>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-databind</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.10.2</version>
        </dependency>
Run Code Online (Sandbox Code Playgroud)


依赖层次结构 错误:

启动 ApplicationContext 时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。13-03-2020 17:38:52.660 ||错误|osboot.SpringApplication:821 |应用程序运行失败org.springframework.beans.factory.BeanCreationException:创建类路径资源中定义的名为“requestMappingHandlerAdapter”的bean时出错[org/springframework /boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]:通过工厂方法实例化 Bean 失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter]:工厂方法“requestMappingHandlerAdapter”抛出异常;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名称为“org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration”的bean时出错:通过构造函数实例化Bean失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$$EnhancerBySpringCGLIB$$1f3fa4d]:构造函数抛出异常;嵌套异常是org.springframework.beans.factory.UnsatisfiedDependencyException:创建在类路径资源[org/springframework/boot/autoconfigure/http/JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration.class]中定义的名为“mappingJackson2HttpMessageConverter”的bean时出错:通过方法“表达的依赖关系不满足” mappingJackson2HttpMessageConverter'参数0;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建类路径资源中定义的名为“jacksonObjectMapper”的bean时出错[org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$JacksonObjectMapperConfiguration.class]:合并bean的后处理定义失败;嵌套异常是 java.lang.IllegalStateException:无法从 org.springframework.beans.factory.support.ConstructorResolver 的 ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2] 内省类 [com.fasterxml.jackson.databind.ObjectMapper]。实例化(ConstructorResolver.java:627)在org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:607)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:132) 1)在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java: 555) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) 在 org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) 在 org. springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)在org.springframework.beans.factory.support。 AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)在org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:845)在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877)在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) 在 org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) 在 org.springframework.boot.SpringApplication .refresh(SpringApplication.java:742) 在 org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:389) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:311) 在 org.springframework.boot。 SpringApplication.run(SpringApplication.java:1213)在org.springframework.boot.SpringApplication.run(SpringApplication.java:1202)在com.finicity.accountowner.AccountOwnerApplication.main(AccountOwnerApplication.java:29)引起:org.springframework .beans.BeanInstantiationException:无法实例化[org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter]:工厂方法“requestMappingHandlerAdapter”抛出异常;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名称为“org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration”的bean时出错:通过构造函数实例化Bean失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$$EnhancerBySpringCGLIB$$1f3fa4d]:构造函数抛出异常;嵌套异常是org.springframework.beans.factory.UnsatisfiedDependencyException:创建在类路径资源[org/springframework/boot/autoconfigure/http/JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration.class]中定义的名为“mappingJackson2HttpMessageConverter”的bean时出错:通过方法“表达的依赖关系不满足” mappingJackson2HttpMessageConverter'参数0;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建在类路径资源 [org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$JacksonObjectMapperConfiguration.class] 中定义的名为“jacksonObjectMapper”的 bean 时出错:合并 bean 定义的后处理失败;嵌套异常是 java.lang.IllegalStateException:无法从 org.springframework.beans.factory.support.SimpleInstantiationStrategy 的 ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2] 内省类 [com.fasterxml.jackson.databind.ObjectMapper]。 instantiate(SimpleInstantiationStrategy.java:185) at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:622) ... 19个常见框架被省略引起:org.springframework.beans.factory.BeanCreationException:错误创建名为 'org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration' 的 bean:通过构造函数实例化 Bean 失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$$EnhancerBySpringCGLIB$$1f3fa4d]:构造函数抛出异常;嵌套异常是org.springframework.beans.factory.UnsatisfiedDependencyException:创建在类路径资源[org/springframework/boot/autoconfigure/http/JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration.class]中定义的名为“mappingJackson2HttpMessageConverter”的bean时出错:通过方法“表达的依赖关系不满足” mappingJackson2HttpMessageConverter'参数0;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建类路径资源中定义的名为“jacksonObjectMapper”的bean时出错[org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$JacksonObjectMapperConfiguration.class]:合并bean的后处理定义失败;嵌套异常是 java.lang.IllegalStateException:无法从 org.springframework.beans.factory.support.ConstructorResolver 的 ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2] 内省类 [com.fasterxml.jackson.databind.ObjectMapper]。实例化(ConstructorResolver.java:304)在org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:285)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1341)在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1187) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) 在 org.springframework.beans.factory .support.AbstractAutowireCapableBeanFactory。requestMappingHandlerAdapter(WebMvcConfigurationSupport.java:563) 在 org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration.requestMappingHandlerAdapter(WebMvcAutoConfiguration.java:450) 在 org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration$ $EnhancerBySpringCGLIB$$52ad7f39.CGLIB$requestMappingHandlerAdapter$6() 在 org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration$$EnhancerBySpringCGLIB$$52ad7f39$$FastClassBySpringCGLIB$$94866013.invoke() 在 org.springframework.cglib。 proxy.MethodProxy.invokeSuper(MethodProxy.java:244) 在 org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363) 在 org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration$ $EnhancerBySpringCGLIB$$52ad7f39.requestMappingHandlerAdapter() 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在 java.lang。 Reflect.Method.invoke(Unknown Source) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ... 20个常见框架被省略 原因:org.springframework.beans.BeanInstantiationException: 失败实例化[org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$$EnhancerBySpringCGLIB$$1f3fa4d]:构造函数抛出异常;嵌套异常是org.springframework.beans.factory.UnsatisfiedDependencyException:创建在类路径资源[org/springframework/boot/autoconfigure/http/JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration.class]中定义的名为“mappingJackson2HttpMessageConverter”的bean时出错:通过方法“表达的依赖关系不满足” mappingJackson2HttpMessageConverter'参数0;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建类路径资源中定义的名为“jacksonObjectMapper”的bean时出错[org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$JacksonObjectMapperConfiguration.class]:合并bean的后处理定义失败;嵌套异常是 java.lang.IllegalStateException:无法从 org.springframework.beans.BeanUtils.instantiateClass(BeanUtils. java:184)在org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117)在org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:300)... 58个常见框架被省略引起:org.springframework.beans.factory.UnsatisfiedDependencyException:创建在类路径资源[org/springframework/boot/autoconfigure/http/JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration.class]中定义的名为“mappingJackson2HttpMessageConverter”的bean时出错:不满足的依赖关系通过方法'mappingJackson2HttpMessageConverter'参数0表示;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建类路径资源中定义的名为“jacksonObjectMapper”的bean时出错[org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$JacksonObjectMapperConfiguration.class]:合并bean的后处理定义失败;嵌套异常是 java.lang.IllegalStateException:无法从 org.springframework.beans.factory.support.ConstructorResolver 的 ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2] 内省类 [com.fasterxml.jackson.databind.ObjectMapper]。 createArgumentArray(ConstructorResolver.java:769) 在 org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:509) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1第321章)在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) 在 org.springframework.beans.factory .support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) 在 org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry。 getSingleton(DefaultSingletonBeanRegistry.java:222) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)在 org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1474) 在 org.springframework.beans.factory .support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1431)在org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1277)在org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(默认ListableBeanFactory .java:第1209章.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration.(HttpMessageConvertersAutoConfiguration.java:62) 在 org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$$EnhancerBySpringCGLIB$$1f3fa4d.() 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)在 sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知源) 在 java.lang.reflect.Constructor.newInstance(未知源) 在 org.springframework.beans.BeanUtils.instantiateClass( BeanUtils.java:172) ... 省略了 60 个常见框架 原因是:org.springframework.beans.factory.BeanCreationException: 创建类路径资源中定义的名为“jacksonObjectMapper”的 bean 时出错 [org/springframework/boot/autoconfigure/jackson/ JacksonAutoConfiguration$JacksonObjectMapperConfiguration.class]:合并bean定义的后处理失败;嵌套异常是 java.lang.IllegalStateException:无法从 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory 的 ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2] 内省类 [com.fasterxml.jackson.databind.ObjectMapper]。 doCreateBean(AbstractAutowireCapableBeanFactory.java:570) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) 在 org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java) :320)在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)在org.springframework。 beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) 在 org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory。 doResolveDependency(DefaultListableBeanFactory.java:1251) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171) 在 org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857)在 org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760) ... 83 个常见框架被省略 原因:java.lang.IllegalStateException:

Nic*_*tar 8

您通常不能只是删除依赖项并将其替换为另一个版本。它可能有效,但不一定有效,对于杰克逊来说,你似乎不走运。如果外部依赖项使用的内部依赖项的 API 发生任何重构或更改,您会看到ClassNotFoundException像您所做的MethodNotFound那样。

您将需要更新com.fasterxml.jackson.dataformat:jackson-dataformat-xml到版本 2.10.2(甚至 2.10.3)。