java - Eureka 的 Springboot 错误,浏览器显示 xml 而不是 json

标签 java json xml spring-boot netflix-eureka

我使用 Java8 和 SpringBoot 使用 Maven 创建了一个微服务。 我们将其称为 MicroServiceA

它有返回 ResponseEntity 对象的 Controller ,如下所示:

    @RestController
    @RequestMapping("/api")
    public class MicroserviceAController {  


        @GetMapping(value = "/all")
        public ResponseEntity<ServiceAResponseWrapper<List<ServiceADto>>> getAll() {

ServiceAResponseWrapper<List<ServiceADto>> wrapper = 
    new ServiceAResponseWrapper<List<ServiceADto>>(ServiceAResponseStatus.SUCCESS,findAll());

return new ResponseEntity<ServiceAResponseWrapper<List<ServiceADto>>>(wrapper,HttpStatus.OK);

        }

      public static List<ServiceADto> findAll() {
        //returns list of ServiceADto objects
    }

    }

当我启动此服务并在任何浏览器中验证它时:http://localhost:8073/api/all/ ,我显示了 JSON 响应。

现在,如果我想将我的服务引入 EUREKA 服务注册中心,那么我需要进行以下更改。

  1. 创建 EUREKA 服务器微服务。我启动它 - http://localhost:8761/
  2. 对 MicroserviceA 进行如下更改 -

转到 pom.xml 并添加依赖项

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

转到 application.yml 并添加以下内容:

eureka:
  client:
    registerWithEureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:8761/eureka/

一旦我启动服务,我就开始在服务器 http://localhost:8761/ 上看到它

现在我再次转到浏览器并尝试检查我的微服务 http://localhost:8073/api/all/我看到的是 XML 而不是 JSON。

我什至尝试通过添加修改我的微服务 Controller 来修复它 我的方法的注释:

@Produces( { MediaType.APPLICATION_JSON} )

但是我也看到了 XML 而不是 JSON。

我是否遗漏了 EUREKA 的某些内容或其正常行为?如果是,我该如何解决?

最佳答案

如果您使用旧版本的 Spring Cloud Starter,您可能需要排除 Jackson 数据格式 XML 依赖项

      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
        <exclusions>
            <exclusion>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-xml</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

关于java - Eureka 的 Springboot 错误,浏览器显示 xml 而不是 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56839197/

相关文章:

java - 为什么Java编译器不下载导入的包?

PHP - MySql SELECT WHERE 值 = 字符串 JSON

json - 删除 json 节点后保存文件

xml - 是否有使用 XML 的每个功能进行测试的示例 XML 文档?

javascript - 在 javascript 中创建 xml 文档显示错误

java - Highcharts-Export Server 2.0.1 Windows 下错误

java - OnItemClickListener 不适用于复选框

java - JDK 日志 API

php - 如何将 JSON 请求中的过滤器参数发送到 HBase REST API?

xml - 在 R 中抓取篮球引用网站(XML 包未完全正常工作)