- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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>
接口(interface)并覆盖 toResource
方法。
有什么办法可以解决这个问题吗?
最佳答案
我不确定我是否可以将此视为答案,它更像是一种解决方法:
@RequestMapping(method = RequestMethod.GET, value = "/path")
public ResponseEntity<Resources<Resource<Data>>> getAllData() {
return getAllDataImpl()
}
@HystrixCommand(fallbackMethod = "myFallbackMethod")
public ResponseEntity<Resources<Resource<Data>>> getAllDataImpl() {
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());
}
我已经将实际执行http 请求的方法的内容(并且需要包装到HystrixCommand
中)放在另一个方法中。它以这种方式工作,但绝对不是一种干净的方式。所以如果有人知道如何以更好的方式解决这个问题..
关于java - HystrixCommand 注释导致 ControllerLinkBuilder 中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32969827/
我目前正在尝试对部分 URL 进行编码,但不是全部 这是一个示例: http://localhost:8080/resourceSearch?type=http%3A%2F%2Fexample.com
我希望我的回复包括以下内容: "keyMaps":{ "href":"http://localhost/api/keyMaps{/keyMapId}", "templated":true }
我正在尝试使用 spring-hateoas 将 HATEOAS 应用于我的 spring boot 应用程序.在我将我的 REST 调用包装在 HystrixCommand 之前,这一直很好用: @
我正在学习有关 Spring REST 的教程,并尝试将 HATEOAS 链接添加到我的 Controller 结果中。 我有一个简单的用户类和一个 CRUD Controller 。 class U
我正在尝试将 Spring HATEOAS 合并到现有的服务工具和 REST API 中。但是,我遇到的问题之一是 ControllerLinkBuilder 似乎删除了尾部斜杠(这是由于现有约束的要
设置:所以我有一个用 java 编写的 RESTfull API,使用 spring-boot 和 spring-hates 添加链接到资源(超媒体驱动的 RESTful Web 服务)。我拥有的一切
Spring HATEOAS 提供了得心应手的ControllerLinkBuilder创建指向 Controller 方法的链接,这些链接将作为 href 添加到返回给客户端的 JSON/XML 中
在使用 ControllerLinkBuilder 和 methodOn 功能时,我不明白的一件事是,当您的 Controller 具有这样的方法签名时,您应该做什么: public HttpEnti
我正在尝试调用 Spring 的 ControllerLinkBuilder.methodOn()使用非 String 类型,它总是失败。而我不知道是哪种Converter使用以及在哪里注册。 这是我
我在 Boot 应用程序中使用 Spring Hateoas 以避免在 View 中手动创建链接。它在 Thymeleaf View 中工作得很好,当 Controller 调用服务发送同样由 Thy
我在 spring Async 方法中调用 ControllerLinkBuilder.linkTo 方法,但它无法找到当前请求。 service.setUrl(linkTo(Controller.c
从 websocket 调用 ControllerLinkBuilder.linkTo 时出现以下错误。 java.lang.IllegalStateException: Could not fin
我是一名优秀的程序员,十分优秀!