2017-07-25 67 views
0

我见过this,但我现在有这个问题。DeferredResult空身体

如果我改变我的控制器返回一个ResponseEntity<?>机身自带通过罚款,但如果它返回DeferredResult<ResponseEntity<?>>然后我得到我的头和状态代码,但没有任何反应的身体。

任何帮助,将不胜感激使用DeferredResult

回答

0

不是简单地改变控制器的响应类型的问题。返回DeferredResult的控制器可能会将请求的处理委托给线程池(或某种异步机制),实际执行请求的任何人都必须在DeferredResult上设置响应。事情是这样的:

在控制器:

DeferredResult deferredResult = new DeferredResult<>(); 

// pass deferredResult into a runnable task (or something similar) 
// which is scheduled for execution via a thread pool (or something similar) 

return deferredResult; 

在其代表控制器的执行请求的任务:

// do some work 
// ... 
deferredResult.setResponse(responseBody); 
+0

是的,我们有一个回调,其套在身上。我发现我们有一个奇怪的过滤器,剥离了链下的响应体。 – Alex