一、场景介绍
-
由于业务需要,将之前采用
Nacos
作为注册中心的应用模块换成Eureka
作为注册中心 -
之前所有接口返回的信息都从
JSON
结构变成了XML
结构
二、问题分析
-
添加
Eureka
客户端依赖后返回的是XML
格式的数据而不是JSON
格式的数据 -
由现象可以知道,应该是换注册中心的问题
-
查看
Eureka
的依赖关系,可以看到Eureka
中默认集成了com.fasterxml.jackson.dataformat
的jackson-dataformat-xml
-
XML
的优先级比JSON
的高,所以会优先返回XMl
三、解决方案
-
排除
Eureka
中默认集成了com.fasterxml.jackson.dataformat
的jackson-dataformat-xml
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <!--去除jackson-dataformat-xml,否则会返回xml文件,而不是JSON--> <exclusions> <exclusion> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> </exclusion> </exclusions> </dependency>
-
再次访问接口成功返回
JSON
结构