2013-05-14 106 views
0

将DeferredResult与Java Config配合使用时,响应正文为空。使用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; 
    } 
} 

回答

-2

是否不使用DeferredResult工作?即

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

如果这不起作用,它可能是一个视图相关的问题。如果有,请在or.springframework.web上启用调试日志记录,并查看输出以获取更多线索。和/或添加一些你自己的日志。

+0

将它不DeferredResult工作。看起来像最新版本的Jetty中的一个错误。 – 2013-05-16 14:22:37

+0

太好了,非常感谢你报告! – 2013-05-30 00:37:41