给定一个简单的控制器,其方法如下:
@RequestMapping(method = RequestMethod.GET, value = "{id}/update")
public ResponseEntity<SseEmitter> update() throws IOException {
final SseEmitter sseEmitter = new SseEmitter();
return ResponseEntity.ok(sseEmitter);
}
我也尝试过这种方式:
@RequestMapping(method = RequestMethod.GET, value = "{id}/update")
public SseEmitter update() throws IOException {
final SseEmitter sseEmitter = new SseEmitter();
return sseEmitter;
}
但无论哪种方式,Tomcat 8.0.21 都会在请求发出后 30 秒抛出上述异常。幕后发生了什么?
这可能是 servlet 容器的默认异步超时。
您可以使用 Spring 更改默认值:
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.setDefaultTimeout(1000000);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)