我正在使用Spring Boot构建一个应用程序。这个应用程序是分布式的,这意味着我有多个API相互调用。
我的其中一个基础服务与数据库交互并响应所请求的数据。如果对不存在的ID进行请求,则我会响应404 HttpStatus:
我正在使用Spring Boot构建一个应用程序。这个应用程序是分布式的,这意味着我有多个API相互调用。
我的其中一个底层服务与数据库交互,并以所请求的数据作出响应。如果发出对不存在ID的请求,则我将以404 HttpStatus作出响应:
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
在某些操作上出现400错误或删除条目时出现204错误等情况相同。
问题是我有一些Spring Boot应用程序调用这些API,当它们请求一个不存在的条目时抛出org.springframework.web.client.HttpClientErrorException: 404 Not Found
异常。但是404状态码是预期的,不应该返回此异常(导致我的Hystrix熔断器调用其回退函数)。
我如何解决这个问题?
我的代码中的服务调用像这样实现:ResponseEntity<Object> data = restTemplate.getForEntity(url, Object.class);
我的RestTemplate设置如下:
private RestTemplate restTemplate = new RestTemplate();