Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jasperr在大量报告后报告内存不足_Java_Jasper Reports_Out Of Memory_Jasperserver - Fatal编程技术网

Java Jasperr在大量报告后报告内存不足

Java Jasperr在大量报告后报告内存不足,java,jasper-reports,out-of-memory,jasperserver,Java,Jasper Reports,Out Of Memory,Jasperserver,我会避免JasperReport服务器出现内存不足异常。 请帮帮我 2015年8月29日编辑 我正在使用Ubuntu14.04和Java8上的JasperReport服务器6.1 同样的结果---详情如下 我编写了一个java代码从我的JasperReport服务器实例下载(存储在本地文件中)多个pdf报告。 它可以很好地处理大约600个报告,之后会产生500个错误。 在JasperServer日志文件中,我看到内存不足异常 也许我的代码有错误?别这么想。 相反,我认为jasperReport服

我会避免JasperReport服务器出现内存不足异常。 请帮帮我

2015年8月29日编辑 我正在使用Ubuntu14.04和Java8上的JasperReport服务器6.1 同样的结果---详情如下

我编写了一个java代码从我的JasperReport服务器实例下载(存储在本地文件中)多个pdf报告。 它可以很好地处理大约600个报告,之后会产生500个错误。 在JasperServer日志文件中,我看到内存不足异常

也许我的代码有错误?别这么想。 相反,我认为jasperReport服务器中存在内存泄漏

在这里您可以看到我的java代码(类ga.system.jasperserver.ReportExtractor)

在这里,您可以看到我得到的异常的一个片段

java.io.IOException:服务器返回了URL: 位于sun.net.www.protocol.http.HttpURLConnection.getInputStream0(未知源) 位于sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知源) 位于java.net.URL.openStream(未知源) 位于ga.system.jasperserver.ReportExtractor.extract(ReportExtractor.java:102) ... ...

在这里,您可以看到登录JasperReport服务器(catalina.out代码段)

我的服务器中使用的虚拟机(applicationContext.xml代码段)


我在Ubuntu14.04(trusty)、Java8上使用JasperReport服务器5.6.0

2015年8月29日编辑 在Ubuntu14.04和Java8上使用JasperReport服务器6.1的新测试 同样的结果,新安装的服务器在580 pdf生成后,服务器挂起,显示此消息(请阅读最后一行:“起因:java.lang.OutOfMemoryError:java堆空间”):

org.hibernate.exception.genericjdbception:无法初始化 惰性属性: [com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoFileResource#8448] 在 org.hibernate.exception.sqlstatecoverter.handledNonsspecificeException(sqlstatecoverter.java:126) 在 org.hibernate.exception.sqlstatecoverter.convert(sqlstatecoverter.java:114) 在 org.hibernate.exception.jdbceptionhelper.convert(jdbceptionhelper.java:66) 在 org.hibernate.persister.entity.AbstractEntityPersister.initializeLazyPropertiesFromDatastore(AbstractEntityPersister.java:831) 在 org.hibernate.persister.entity.AbstractEntityPersister.InitializeLazProperty(AbstractEntityPersister.java:771) 在 org.hibernate.intercept.AbstractFieldInterceptor.intercept(AbstractFieldInterceptor.java:97) 在 org.hibernate.intercept.cglib.FieldInterceptorImpl.readObject(FieldInterceptorImpl.java:98) 在 com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoFileResource.$cglib\u read\u data(未知 来源)在 jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoFileResource.getData(未知 来源)在 jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoFileResource.copyData(未知 来源)在 jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl$22.execute(HibernateRepositoryServiceImpl.java:1420) 在 jaspersoft.jasperserver.api.metadata.common.service.impl.HibernateDaoImpl.executeCallback(HibernateDaoImpl.java:56) 在 jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl.getResourceData(HibernateRepositoryServiceImpl.java:1414) at sun.reflect.GeneratedMethodAccessor337.invoke(未知源)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:606) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:150) 在 org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:172) 在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) 位于com.sun.proxy.$Proxy32.getResourceData(未知源) sun.reflect.GeneratedMethodAccessor337.invoke(未知源)位于 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:606) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:150) 在 jaspersoft.jasperserver.api.metadata.user.service.impl.PermissionsPrefetcher.invoke(PermissionsPrefetcher.java:79) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:172) 在 jaspersoft.jasperserver.api.metadata.user.service.impl.PermissionsPrefetcher.invoke(PermissionsPrefetcher.java:79) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:172) 在 org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:66) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:172) 在 org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:66) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:172) 在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.jav
    for (ReportParameters aReportParams : listOfReportParameters)
    {
        String filename = "report-"+aReportParams.getParameter1()+ ".PDF";
        jasperreport_url = combineParamsIntoJasperserverUrl(aReportParams);
        URL website = new URL(jasperreport_url);
        ReadableByteChannel rbc = Channels.newChannel(website.openStream());
        FileOutputStream fos = new FileOutputStream(destPath+"/" +filename);
        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
        fos.close();
        rbc.close();
    }
 2015-08-17 18:16:17,091 ERROR RunReportServiceImpl,pool-5-thread-66:511 - caught Throwable exception: Java heap space
java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOf(Arrays.java:2271)
        at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:113)
        at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
        at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:140)
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
        at com.lowagie.text.pdf.OutputStreamCounter.flush(Unknown Source)
        at com.lowagie.text.DocWriter.close(Unknown Source)
        at com.lowagie.text.pdf.PdfWriter.close(Unknown Source)
        at com.lowagie.text.pdf.PdfDocument.close(Unknown Source)
        at com.lowagie.text.Document.close(Unknown Source)
        at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:815)
        at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:513)
        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.exportToPdf(EngineServiceImpl.java:559)
        at com.jaspersoft.jasperserver.remote.exporters.PdfExporter.exportReport(PdfExporter.java:98)
        at com.jaspersoft.jasperserver.remote.services.impl.ReportExecutorImpl.exportReport(ReportExecutorImpl.java:177)
        at com.jaspersoft.jasperserver.remote.services.impl.RunReportServiceImpl.generateReportOutput(RunReportServiceImpl.java:478)
        at com.jaspersoft.jasperserver.remote.services.impl.RunReportServiceImpl.executeExport(RunReportServiceImpl.java:378)
        at com.jaspersoft.jasperserver.remote.services.impl.RunReportServiceImpl$2.run(RunReportServiceImpl.java:343)
        at com.jaspersoft.jasperserver.api.logging.util.LoggableExecutorService$1.run(LoggableExecutorService.java:59)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)
<bean id="fileVirtualizerFactory" class="com.jaspersoft.jasperserver.api.engine.common.service.impl.FileVirtualizerFactory">
    <property name="maxSize" value="3000"></property>
    <property name="directory" value="${java.io.tmpdir}"></property>
</bean>