2017-10-17 10 views
1

私はSpring Boot Web Fluxアプリケーションをかなりの期間利用しています。この時点で、私は私のルータ機能にいくつかの例外ハンドラを追加したい:私は私のビューリゾルバとのトラブルを抱えています。この後Spring WebFluxでViewResolverを設定する方法

@Bean 
HttpHandler httpHandler(final GeneratorHandler generatorHandler) throws Exception { 
    return WebHttpHandlerBuilder.webHandler(toHttpHandler(router(generatorHandler))) 
      .prependExceptionHandler((serverWebExchange, exception) -> { 
       //process here 
       return null; 
      }) 
      .build(); 
} 

@Bean 
RouterFunction<?> router(final GeneratorHandler generatorHandler) { 
    return resources("/**", new ClassPathResource("/static/")) 
      .andOther(route(GET("/generate"), generatorHandler::renderData) 
        .andRoute(GET("/index"), generatorHandler::renderIndex)); 
} 

だから私はこのような別のBeanを追加しました。それは私の意見を見つけることができません。調査したところ、デバッガはThymeleafReactiveViewResolverクラスで停止しないことに気付きました。

この変更によってデフォルトのビューリゾルバも変更された可能性はありますか?どうすれば元に戻すことができますか?あなたのhttpHandlerを提供

+0

新しい 'httpHandler' beanをコメントアウトすると、すべて正常に戻りますか? – dillius

+0

@ディリウスはいです。 –

+0

この[spring docs]セクション(https://docs.spring.io/spring/docs/5.0.0.M4/spring-framework-reference/html/web-reactive.html#web-reactive-getting- started-manual)は、ハンドラにコンテキスト情報を提供する必要があるように見えますか? – dillius

答えて

1

は春ブーツからの支援のかなり多くを無効にします。

あなたは、コンポーネント(でも注文したもの)として、独自のWebExceptionHandlerを宣言することができますし、春WebFluxはあなたのためにそれをピックアップします。より具体的な例(または見ているスタックトレース/エラー)がなければ、何が起こっているのかを理解することは難しいです。

WebFluxアプリケーションでエラー処理がサポートされるようになりました(#8625を参照)。

関連する問題