2017-01-04 14 views
0

私はSpringブート4.2を使用しています。私はStreamingBodyResponse(コンソール出力)を返すサービスを持っています。私はこの出力をビューに表示したい(できればタイメリーフですが、何でも問題ありません)。今はブラウザを開いてストリームします。私がしたいのは、タイムリーフビューのテキストエリアにストリーミングレスポンスを表示し、また、このビューを閉じても、サーバー側でストリーミングを停止しクラッシュさせることには影響しません。もし誰かが私を正しい方向に向けることができれば素晴らしいだろう。タイムリーフを使用しているクライアントでStreamingBodyResponseを処理する

@PostMapping(value="/environment",produces =MediaType.TEXT_PLAIN) 
public StreamingResponseBody environmentSubmit(@ModelAttribute Environment environment) { 
    Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); 
    String currentUserName = authentication.getName(); 
    Configuration configuration = Configuration.createFromPostParams(
      environment.getDriver(), 
      environment.getVersion(), 
      currentUserName); 
    StreamingResponseBody response =executor.execute(configuration); 
    return response; 

答えて

0

あなたはそれが非同期的に実行し、タイムアウトしていないことを確認するために、次の試みることができます。

@Configuration 
public static class WebConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void configureAsyncSupport(AsyncSupportConfigurer configurer) { 
     configurer.setDefaultTimeout(-1); 
     configurer.setTaskExecutor(asyncTaskExecutor()); 
    } 

    @Bean 
    public AsyncTaskExecutor asyncTaskExecutor() { 
     return new SimpleAsyncTaskExecutor("async"); 
    } 

} 

External source with same code

関連する問題