【发布时间】:2015-10-06 12:20:28
【问题描述】:
我正在尝试使用 spring-hateoas 将 HATEOAS 应用于我的 Spring Boot 应用程序。在我将 REST 调用包含在 HystrixCommand 中之前,这一直很好:
@HystrixCommand(fallbackMethod = "myFallbackMethod")
@RequestMapping(method = RequestMethod.GET, value = "/path")
public ResponseEntity<Resources<Resource<Data>>> getAllData() {
String url = "http://localhost:8080/someotherpath"
ParameterizedTypeReference<Iterable<Data>> responseType = new ParameterizedTypeReference<Iterable<Data>>() {};
ResponseEntity<Iterable<Data>> response = restTemplate.exchange(url, HttpMethod.GET, null, responseType);
if (response.getStatusCode().is2xxSuccessful()) {
Iterable<Data> data = response.getBody();
Resources<Resource<Data>> resources = assembler.toResource(data);
return new ResponseEntity<>(resources, response.getHeaders(), response.getStatusCode());
}
return new ResponseEntity<>(response.getHeaders(), response.getStatusCode());
}
我将 Data 对象包装到 Resource 对象中的汇编程序类现在抛出此错误:Could not find current request via RequestContextHolder
如果我将 HystrixCommand 注释注释掉,错误就会消失,一切正常。
我的汇编类只实现了 Springs 的 ResourceAssembler<T, D> 接口并覆盖了 toResource 方法。
有什么办法可以解决这个问题吗?
【问题讨论】:
标签: java spring spring-mvc spring-boot spring-hateoas