Java 使用DeferredResult时响应正文为空
将DeferredResult与Java配置一起使用时,响应正文为空 控制器:Java 使用DeferredResult时响应正文为空,java,spring-mvc,asynchronous,Java,Spring Mvc,Asynchronous,将DeferredResult与Java配置一起使用时,响应正文为空 控制器: @Controller public class HomeController { @RequestMapping("/") public DeferredResult<ModelAndView> home() { final DeferredResult<ModelAndView> result = new DeferredResult<>();
@Controller
public class HomeController {
@RequestMapping("/")
public DeferredResult<ModelAndView> home() {
final DeferredResult<ModelAndView> result = new DeferredResult<>();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
result.setResult(new ModelAndView("home", Collections.singletonMap("name", "World")));
}
}, 2);
return result;
}
}
@Configuration
@ComponentScan(basePackages = "to.talk.gzip.test")
@PropertySource(value = "classpath:/application.properties")
@EnableWebMvc
public class AppConfig {
@Bean
public ViewResolver mustacheViewResolver() {
MustacheViewResolver resolver = new MustacheViewResolver();
resolver.setPrefix("views/");
resolver.setSuffix(".html");
return resolver;
}
}
它在不使用延迟结果的情况下工作吗?即
@RequestMapping("/")
public ModelAndView home() {
return new ModelAndView("home", Collections.singletonMap("name", "World"));
}
如果这不起作用,可能是与视图相关的问题。如果是,则在or.springframework.web上启用调试日志记录,并查看输出以获取更多线索。和/或添加您自己的日志。这似乎是Jetty 9中的一个bug。它与Jetty 8一起工作
报告了一个问题:它可以正常工作,但没有延迟结果。看起来像是Jetty最新版本中的一个bug。