超时时更改deferredResult HTTP状态代码

pau*_*aul 3 java spring java-ee

deferredResult在Spring MVC上使用,但使用此代码,超时仍然将HTTP代码503发送回客户端.

future.onCompletion(new Runnable() {
    @Override
    public void run() {

        if(future.isSetOrExpired()){
            response.setStatus(HttpServletResponse.SC_NO_CONTENT);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

知道还有什么可以尝试吗?

pin*_*man 5

我遇到了同样的问题.我的Spring MVC Controller方法最初返回DeferredResult <Object>但后来我意识到我想控制HTTP状态代码.我在这里找到了答案:

http://www.jayway.com/2014/09/09/asynchronous-spring-service/

只需使用DeferredResult <ResponseEntity>,您就可以在ResponseEntity中设置响应和Http响应代码.