Java 浏览器显示xml而不是json的Eureka的Springboot错误
我已经使用Java8和使用Maven的SpringBoot创建了一个微服务。 我们称之为微服务 它具有返回ResponseEntity对象的控制器,如下所示: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
@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'