使用DeferredResult时响应主体为空 [英] Response body is empty when using DeferredResult

查看:60
本文介绍了使用DeferredResult时响应主体为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Java Config中使用DeferredResult时,响应主体为空.

Response body is empty when using DeferredResult with Java Config.

控制器:

@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;
    }
}

推荐答案

这似乎是Jetty 9中的错误.它与Jetty 8兼容.

This seems to be a bug in Jetty 9. It works with Jetty 8.

报告了一个问题: https://bugs.eclipse.org/bugs/show_bug.cgi?id = 408117

这篇关于使用DeferredResult时响应主体为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆