Java 浏览器显示xml而不是json的Eureka的Springboot错误

Java 浏览器显示xml而不是json的Eureka的Springboot错误,java,json,xml,spring-boot,netflix-eureka,Java,Json,Xml,Spring Boot,Netflix Eureka,我已经使用Java8和使用Maven的SpringBoot创建了一个微服务。 我们称之为微服务 它具有返回ResponseEntity对象的控制器,如下所示: @RestController @RequestMapping("/api") public class MicroserviceAController { @GetMapping(value = "/all") public ResponseEntity<Servic

我已经使用Java8和使用Maven的SpringBoot创建了一个微服务。 我们称之为微服务

它具有返回ResponseEntity对象的控制器,如下所示:

    @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
    }

    }
一旦我开始我的服务,然后我开始在服务器上看到它

现在我再次转到浏览器,尝试检查我的微服务,我看到的是XML而不是JSON

我甚至试图通过添加新的控件来修改我的微服务控制器来修复它 我的方法的注释:

@Produces( { MediaType.APPLICATION_JSON} )
但我也看到了XML,而不是JSON


我在尤里卡身上是否遗漏了什么或它的正常行为?如果是,我该如何修复它?

嗨,我本人从未使用过Eureka,但通过快速搜索,有一个现成的API可以将XML转换为json,因为Eureka使用XML而不是json,因为json不能保存属性。 链接到解释如何执行此操作的网站->


希望这对您有所帮助

如果您使用的是较旧版本的SpringCloudStarter,您可能需要排除Jackson dataformat 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>
      <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>

org.springframework.cloud
春云起动器尤里卡
com.fasterxml.jackson.dataformat
jackson数据格式xml

有两种可能的解决方案:

首先:如果应用程序与xml转换无关,则从所有
spring cloud starter-*
工件中排除
jackson dataformat xml
依赖项。
spring cloud starter netflix eureka客户端的一个排除示例如下。在我的例子中,我必须从
springcloudstarternetflix功能区
springcloudstarteropenfeign
springcloudstarternetflix eureka客户端

<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>
要获取XML响应,请执行以下操作:

curl -X GET \
  http://localhost:8073/api/all/ \
  -H 'Accept: application/json' 
curl -X GET \
  http://localhost:8073/api/all/ \
  -H 'Accept: application/xml'

spring cloud starter eureka已被弃用。这就是我使用SpringCloudStarter netflix eureka客户端的原因。谢谢,它解决了问题。spring cloud starter netflix eureka客户端中的排除对我有效。谢谢
curl -X GET \
  http://localhost:8073/api/all/ \
  -H 'Accept: application/xml'