【发布时间】:2015-12-28 09:49:15
【问题描述】:
我正在使用 Spring Boot 构建一个应用程序。这个应用程序是分布式的,这意味着我有多个相互调用的 API。
我的一个底层服务与数据库交互并以请求的数据进行响应。如果向不存在的 ID 发出请求,我会以 404 HttpStatus 响应:
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
(与某些操作的 400 错误或删除条目等的 204 相同)。
问题是我有其他一些调用这些 API 的 Spring Boot 应用程序,当它们请求时抛出一个 org.springframework.web.client.HttpClientErrorException: 404 Not Found 异常,在这个例子中,一个不存在的条目。但是 404 状态码是有意的,不应返回此异常(导致我的 Hystrix 断路器调用其回退函数)。
我该如何解决这个问题?
对服务的调用在我的代码中是这样实现的:ResponseEntity<Object> data = restTemplate.getForEntity(url, Object.class);
我的 RestTemplate 是这样设置的:
private RestTemplate restTemplate = new RestTemplate();
【问题讨论】:
标签: java rest spring-mvc spring-boot