首页 > 解决方案 > java.lang.ClassNotFoundException:com.fasterxml.jackson.dataformat.xml.XmlMapper

问题描述

我正在使用 Spring boot 2.1.1 在使用 org.springframework.web.client.RestTemplate 时遇到错误

java.lang.ClassNotFoundException: com.fasterxml.jackson.dataformat.xml.XmlMapper
    at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.8.0_191]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_191]
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[na:1.8.0_191]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_191]
    at 
    org.springframework.http.converter.json
    .Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:617) ~[spring-web- 
    5.1.3.RELEASE.jar:5.1.3.RELEASE]
    at org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter.<init> 
    (MappingJackson2XmlHttpMessageConverter.java:50) ~[spring-web-5.1.3.RELEASE.jar:5.1.3.RELEASE]
    at 

从我的pom:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.1.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>

在创建 org.springframework.web.client.RestTemplate 对象时,我遇到了这个异常

我该如何解决?

标签: spring-bootjava-8resttemplatejackson-databind

解决方案


com.fasterxml.jackson.dataformat.xml.XmlMapper来自可选的 Jackson 扩展(https://github.com/FasterXML/jackson-dataformat-xml)。您可以通过将以下内容添加到 pom 中来将其包含在您的项目中:

<dependency>
   <groupId>com.fasterxml.jackson.dataformat</groupId>
   <artifactId>jackson-dataformat-xml</artifactId>
</dependency>

如果这个 Maven 工件的版本没有在父 pom 中定义,你必须自己添加它,例如最新版本

<dependency>
  <groupId>com.fasterxml.jackson.dataformat</groupId>
  <artifactId>jackson-dataformat-xml</artifactId>
  <version>2.10.1</version>
</dependency>

您可能需要更多依赖项,因此请检查上面的链接。


推荐阅读