Spring Async:如何在Async方法中调用spring hateoas ControllerLinkBuilder

时间:2016-02-12 15:45:51

标签: java spring-mvc spring-hateoas spring-async

我在Spring异步方法中调用ControllerLinkBuilder.linkTo方法,但无法找到当前请求。

service.setUrl(linkTo(Controller.class, Controller.METHOD_GET,
                headers.getFirst(HEADER_SOURCE), id).toString());

例外:

java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Could not find current request via RequestContextHolder
Caused by: java.lang.IllegalStateException: Could not find current request via RequestContextHolder

2 个答案:

答案 0 :(得分:0)

我试图重建你的问题并且无法解决。您是否尝试过使用以下内容?

linkTo(methodOn(EnvironmentRequestStateTransitioner.class)
    .approveRegistrationRequest(23L))
    .withRel("approve")

使用spring-boot-starter-parent版本1.3.2.RELEASE时,这对我来说很好。

答案 1 :(得分:0)

作为_Manan响应的补充,您可以在属性文件上将属性继承设置为true。请添加以下行:

spring.freemarker.request-context-attribute=true