Java 多次生成报告时Tomcat服务器冻结
我正在使用jasper reports在我的web应用程序中生成报告。该应用程序是一个计费系统。因此,应经常生成报告(账单)。但问题是应用程序在多次生成账单后没有响应。我必须从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
@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);
}
}
检查您的方法是否已退出,它可能会锁定某些资源