maybe the problem is in the compiling of the jrxml, that's a common memory leakage problem. Instead of something like this JasperCompileManager.compileReportToFile(inputFile, destinationFile); try String inputFile = session.getServletContext().getRealPath("InputFile.jrxml"); String destinationFile = session.getServletContext().getRealPath("InputFile.jasper"); File jasperFile = new File(destinationFile); if(environmentBeanFile.exists() == false) { JasperCompileManager.compileReportToFile(inputFile, destinationFile); }