gpt4 book ai didi

java - Spring DeferredResult setResult 导致 404

转载 作者:行者123 更新时间:2023-12-01 04:52:32 29 4
gpt4 key购买 nike

我正在使用新的 spring 3.2 异步 servlet 请求。除了这一种情况之外,一切都运行良好...

@RequestMapping("/test")
@ResponseBody
public DeferredResult<byte[]> test(InputStream is, HttpServletResponse response, WebRequest request) {
if (someTest()) {
deferredResult.setResult(DATA);
return deferredResult;
}

deferredResult.onTimeout(new Runnable() {

@Override
public void run() {
deferredResult.setResult(DATA);
}
});

// Use deferredResult in another thread when needed

return deferredResult;
}

someTest() 为 true 时,spring/tomcat 返回 404。我不知道应该如何解决这个问题,也不知道为什么会发生这种情况?我认为这可能是因为 Servlet 异步上下文已经创建。这是一个错误还是我做错了什么?

任何信息将不胜感激!

最佳答案

我认为您需要从 if 条件中删除语句 return deferredResult

setData 也应该在 return 语句之后完成。因此,您需要从某个服务器端事件的单独线程中执行此操作。

希望这对您有帮助。

关于java - Spring DeferredResult setResult 导致 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14732724/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com