spring 创建在类路径资源中定义的名为“objectMapper”的bean时出错,在Jackson中

yshpjwxd  于 2023-08-02  发布在  Spring
关注(0)|答案(3)|浏览(237)

我在创建过程中遇到问题创建类路径资源中定义的名为“objectMapper”的bean时出错。我做的唯一改变是
更新pom.xml

  1. <dependency>
  2. <groupId>com.fasterxml.jackson.core</groupId>
  3. <artifactId>jackson-databind</artifactId>
  4. <version>2.9.10</version>
  5. </dependency>
  6. <dependency>
  7. to
  8. <dependency>
  9. <groupId>com.fasterxml.jackson.core</groupId>
  10. <artifactId>jackson-databind</artifactId>
  11. <version>2.10.0.pr3</version>
  12. </dependency>
  13. <dependency>

字符串
我得到以下错误,而执行我的项目

  1. 019-10-16 14:04:50.065 [CorrelationId=] ERROR --- [ main] o.s.b.w.e.t.TomcatStarter : Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException.
  2. Message: Error creating bean with name 'org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration':
  3. Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException:
  4. Failed to instantiate [org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration$$EnhancerBySpringCGLIB$$c58725a7]:
  5. Constructor threw exception; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException:
  6. Error creating bean with name 'resourceConfigCustomizer' defined in class path resource [org/springframework/boot/autoconfigure/jersey/JerseyAutoConfiguration$JacksonResourceConfigCustomizer.class]:
  7. Unsatisfied dependency expressed through method 'resourceConfigCustomizer' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException:
  8. Error creating bean with name 'objectMapper' defined in class path resource [com/test/test/marketing/banditsorchestrator/config/OwaspConfig.class]:
  9. Post-processing of merged bean definition failed; nested exception is java.lang.IllegalStateException:
  10. Failed to introspect Class [com.fasterxml.jackson.databind.ObjectMapper] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2]


这是我的代码
public class MyNode {

  1. private ObjectMapper objectMapper;
  2. @Bean
  3. @Primary
  4. public ObjectMapper objectMapper() {
  5. JsonFactory factory = new JsonFactory();
  6. factory.setCharacterEscapes(new OwaspCharacterEscapes());
  7. objectMapper = new ObjectMapper(factory);
  8. return new ObjectMapper(factory);
  9. }


}

nhaq1z21

nhaq1z211#

我的问题是,尽管pom中没有指定,但我的应用程序使用的是jackson-core的旧版本(2.9.6)。添加了以下内容,解决了我的问题。

  1. <dependency>
  2. <groupId>com.fasterxml.jackson.core</groupId>
  3. <artifactId>jackson-core</artifactId>
  4. <version>2.10.0</version>
  5. </dependency>

字符串
我使用以下命令识别过时的依赖项:

  1. mvn dependency:tree

kiayqfof

kiayqfof2#

更新到2.10.0,问题已解决。

w8biq8rn

w8biq8rn3#

最后但并非最不重要:检查是否没有重复的依赖项。我花了无数个小时试图解决像你这样的问题。原因是一个过时的Jackson核心部,它超过了新的。

相关问题