Jasper Report 使 Vaadin 应用程序崩溃

Jasper Report makes Vaadin app to crash

我有一个使用 Vaadin 框架开发的 Web 应用程序,我使用 Jasper 报告生成一些报告。代码如下:

// Vaadin Button Listener
   JasperDesign desenho = JRXmlLoader.load( layout );
    JasperReport r= JasperCompileManager.compileReport( desenho );

    // create some params and resultSet

    JRResultSetDataSource jrRS = new JRResultSetDataSource( resultSet );

    //Do some stuff

    JasperPrint impressao = JasperFillManager.fillReport( r, params, jrRS );
    JasperViewer viewer = new JasperViewer( impressao , true );
    viewer.show();

用户按下 'Show Report' 按钮后,报告将显示在 jasper 查看器中 window

用户仍然可以使用 Web 应用程序,同时此 Jasper 查看器 window 打开,但在用户关闭它后,Web 应用程序生成通信错误。显示 JSON 文本错误,有时还有 Pausing ProtocolHandler ["http-nio-8080"]

有什么想法吗?提前致谢!

完整的解释可以在this link上找到:

简短的回答是在下面的行中将 true 更改为 false

JasperViewer viewer = new JasperViewer( impressao , true );

这是 isExitOnClose 参数,它停用导致 Tomcat 关闭的 Jasper 查看器上的调用 t System.exit(0)。