Java 多次生成报告时Tomcat服务器冻结

Java 多次生成报告时Tomcat服务器冻结,java,spring,spring-mvc,jasper-reports,Java,Spring,Spring Mvc,Jasper Reports,我正在使用jasper reports在我的web应用程序中生成报告。该应用程序是一个计费系统。因此,应经常生成报告(账单)。但问题是应用程序在多次生成账单后没有响应。我必须从tomcat应用程序列表中重新启动应用程序。我该怎么做才能解决这个问题。我使用以下代码生成账单 @RequestMapping(value = "/{orderId}/bill/customer") public void generateCustomerBill(@PathVariable("orderId") Long

我正在使用jasper reports在我的web应用程序中生成报告。该应用程序是一个计费系统。因此,应经常生成报告(账单)。但问题是应用程序在多次生成账单后没有响应。我必须从tomcat应用程序列表中重新启动应用程序。我该怎么做才能解决这个问题。我使用以下代码生成账单

@RequestMapping(value = "/{orderId}/bill/customer")
public void generateCustomerBill(@PathVariable("orderId") Long orderId, HttpServletResponse response) {

        //parameters
        Map<String, Object> params = new HashMap<>();
        params.put("paraOrderId", orderId);        
        params.put("paraPaidAmount", 0.0);

        try {
            response.setContentType("text/html");

            DataSource dataSource = config.getDataSource();

            //load report file
            String inputStream = session.getServletContext().getRealPath("/reports/customer_bil_tal.jasper");

            JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, params, dataSource.getConnection());

            HtmlExporter exporter = new HtmlExporter(DefaultJasperReportsContext.getInstance());
            exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
            exporter.setExporterOutput(new SimpleHtmlExporterOutput(response.getWriter()));
            exporter.exportReport();

        } catch (JRException ex) {
            Logger.getLogger(CustomerBillController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(CustomerBillController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(CustomerBillController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
@RequestMapping(value=“/{orderId}/bill/customer”)
public void generateCostomerBill(@PathVariable(“orderId”)Long orderId,HttpServletResponse){
//参数
Map params=新的HashMap();
参数put(“paraOrderId”,orderId);
参数put(“paraPaidAmount”,0.0);
试一试{
response.setContentType(“text/html”);
DataSource DataSource=config.getDataSource();
//加载报告文件
字符串inputStream=session.getServletContext().getRealPath(“/reports/customer\u bil\u tal.jasper”);
JasperPrint JasperPrint=JasperFillManager.fillReport(inputStream,params,dataSource.getConnection());
HtmlExporter=newHtmlexporter(DefaultJasperReportsContext.getInstance());
exporter.setExporterInput(新的SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(新的SimpleHtmlExporterOutput(response.getWriter());
出口商。出口报告();
}捕获(JREX异常){
Logger.getLogger(CustomerBillController.class.getName()).log(Level.SEVERE,null,ex);
}catch(SQLException-ex){
Logger.getLogger(CustomerBillController.class.getName()).log(Level.SEVERE,null,ex);
}捕获(IOEX异常){
Logger.getLogger(CustomerBillController.class.getName()).log(Level.SEVERE,null,ex);
}
}

检查您的方法是否已退出,它可能会锁定某些资源