2016-04-06 26 views
1

Vertx ve Jasper Raporlarını kullanıyorum, raporlarımı başarılı bir şekilde oluşturabilirim ancak PDF dosyasını kapattığımda Sunucu çalışmayı durdurur. Sunucumun çalışmaya devam etmesini istiyorum. İşte Vertx: PDF dosyasını kapattıktan sonra canlı kalmaya devam et

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()); 
      }); 


} 

yığını: Burada

benim kodudur

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

Lütfen hatanın yığın izini gönderin. – sanluck

+0

Bazı kodları kullanarak bunu canlı tutmak için bazı kodları ekledim: response.putHeader ("Content-Type", "application/json"); response.write (yeni JsonObject ("{\" error \ ": false, \" dosya \ ": \" report44 \ "}"). EncodePrettily()); response.end(); ama bana verir: java.lang.IllegalStateException: Yanıt zaten yazılmıştır. – zackzulg

+0

@zackzulg [değiştir] bu stacktrace ile sorunuzunuzu yorum olarak iletmeyin. –

cevap

0

çözüldü, ben viewReport

için

JasperViewer.viewReport yanlış argüman eklemek zorunda (JASP_PRINT, yanlış) ;

İlgili konular