2016-04-06 9 views
1

VertxとJasper Reportsを使用してレポートを作成できましたが、PDFファイルを閉じるとサーバーが停止します。私は私のサーバーを稼働させ続けるのが好きです。ここでVertx:PDFファイルを閉じた後に配信を続ける

は私のコードです:ここでは

public void start(Future<Void> startFuture){ 
    String fileJSON = "{name : 'Stackoverflow', start: '15-06-2014', end: '02-09-2018'}"; 
    String file = "/Test1"; 
    Router router = Router.router(vertx); 
     router.route(file).handler(routingContext -> { 
     HttpServerResponse response = routingContext.response(); 
     response.setChunked(true);    
     InputStream iostream = new ByteArrayInputStream(fileJSON.getBytes(StandardCharsets.UTF_8)); 
       try{         
        JsonDataSource ds = new JsonDataSource(iostream); 
        Map parametersMap = new HashMap(); 
        String report = "C:\\PathToreport\\report2.jrxml"; 
        JasperReport Jasp = JasperCompileManager.compileReport(report); 
        JasperPrint JASP_PRINT = JasperFillManager.fillReport(Jasp,parametersMap,ds); 
        JasperViewer.viewReport(JASP_PRINT); 
        JasperExportManager.exportReportToPdfFile(JASP_PRINT, "C:\\Users\\path\\report4.pdf");        
        } 
       catch(Exception e){ System.out.println(e);} 
     routingContext.vertx().setTimer(1000, tid -> routingContext.response().end()); 
    }); 
    vertx.createHttpServer() 
      .requestHandler(router::accept) 
      .listen(8089, "localhost", res -> { 

       if (res.succeeded()){ 

        startFuture.complete();  
       } 
       else 
        startFuture.fail(res.cause()); 
      }); 


} 

がスタックです:解決

vr. 07, 2016 9:25:04 AM io.vertx.core.impl.BlockedThreadChecker AVERTISSEMENT: Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 2407 ms, time limit is 2000 avr. 07, 2016 9:25:05 AM io.vertx.core.impl.BlockedThreadChecker AVERTISSEMENT: Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 3407 ms, time limit is 2000 avr. 07, 2016 9:25:06 AM io.vertx.core.impl.BlockedThreadChecker AVERTISSEMENT: Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 4407 ms, time limit is 2000 BUILD SUCCESSFUL (total time: 27 seconds) 
+0

エラーのスタックトレースを投稿してください。 – sanluck

+0

私はいくつかのコードを使用してそれを生き続けるためにいくつかのコードを追加しました:response.putHeader( "Content-Type"、 "application/json");response.write(新しいJsonObject( "{\"エラー\ ":偽、\"ファイル\ ":\" report44 \ "}")encodePrettily()); response.end(); ; しかし、それは私を与える:java.lang.IllegalStateException:応答はすでに書かれています。 – zackzulg

+0

@zackzulg [edit]このstacktraceであなたの質問をコメントとして渡さないでください。 –

答えて

0

、私は

viewReport

に(偽JASP_PRINT、)JasperViewer.viewReportを誤った引数を追加する必要がありました;

関連する問題