响应机身采用DeferredResult时是空的(Response body is empty wh

2019-10-29 12:11发布

响应机身采用DeferredResult与Java配置的时候是空的。

控制器:

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

Answer 1:

这似乎是在码头9的错误它与码头8。

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



Answer 2:

它不使用DeferredResult工作? 即

@RequestMapping("/")
public ModelAndView home() {
    return new ModelAndView("home", Collections.singletonMap("name", "World"));
}

如果不工作,它可能是一个视图相关的问题。 如果确实如此,那么在or.springframework.web启用调试日志记录,并期待在输出更多线索。 和/或添加一些自己的日志记录。



文章来源: Response body is empty when using DeferredResult