0

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

2 に答える 2

1

これは Jetty 9 のバグのようです。Jetty 8 で動作します。

問題を報告しました: https://bugs.eclipse.org/bugs/show_bug.cgi?id=408117

于 2013-05-16T14:23:48.793 に答える
-2

DeferredResult を使用しなくても機能しますか? いえ

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

それでもうまくいかない場合は、ビュー関連の問題である可能性があります。存在する場合は、or.springframework.web でデバッグ ロギングを有効にし、出力を調べてさらに手がかりを探します。および/または独自のログを追加します。

于 2013-05-16T12:30:54.820 に答える