【发布时间】:2019-11-12 07:38:33
【问题描述】:
我使用 Java8 创建了一个微服务,并使用 Maven 创建了 SpringBoot。 让我们称之为 MicroServiceA
它有一个返回 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
}
}
当我启动此服务并在任何浏览器中验证它时:http://localhost:8073/api/all/,我会显示 JSON 响应。
现在,如果我想将我的服务引入 EUREKA 服务注册中心,那么我需要进行以下更改。
- 创建 EUREKA 服务器微服务。我开始了 - http://localhost:8761/
- 对 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。
我什至尝试通过修改我的微服务控制器来修复它 我的方法的注释:
@Produces( { MediaType.APPLICATION_JSON} )
但我也看到了 XML 而不是 JSON。
我是否缺少 EUREKA 的某些内容或其正常行为?如果是,我该如何解决?
【问题讨论】:
标签: java json xml spring-boot netflix-eureka