gpt4 book ai didi

java - Jasper Report 使用 javaflow 的子报表问题

转载 作者:行者123 更新时间:2023-11-30 01:55:18 27 4
gpt4 key购买 nike

根据 The Definitive Guide to JasperReports – Teodor Danciu、Lucian Chirita,第 130 页,我在使用 Jasperreport 6.7.0 的 javaflow 时遇到子报表问题。我需要它来避免在我们的应用程序中调用报表时调用不同的线程,因为有值(value)的理由。

设置为 default.jasperreport.properties

net.sf.jasperreports.subreport.runner.factory=net.sf.jasperreports.engine.fill.JRContinuationSubreportRunnerFactory

当我运行超过 5 行的报告时出现错误:

java.lang.IllegalStateException: Stack corruption on suspend (empty stack). Is net.sf.jasperreports.engine.fill.JRContinuationSubreportRunner@2024896527/org.apache.catalina.loader.WebappClassLoader@1847497893 instrumented for javaflow? at org.apache.commons.javaflow.core.StackRecorder.execute(StackRecorder.java:131) at org.apache.commons.javaflow.api.Continuation$MultiShotContinuation.resumeWith(Continuation.java:521) at org.apache.commons.javaflow.api.Continuation.resume(Continuation.java:314) at org.apache.commons.javaflow.api.Continuation.startWith(Continuation.java:219) at org.apache.commons.javaflow.api.Continuation.startWith(Continuation.java:169) at org.apache.commons.javaflow.api.Continuation.startWith(Continuation.java:148) at net.sf.jasperreports.engine.fill.JRContinuationSubreportRunner.start(JRContinuationSubreportRunner.java:53) at net.sf.jasperreports.engine.fill.JRFillSubreport.prepare(JRFillSubreport.java:931) at net.sf.jasperreports.components.table.fill.FillTableSubreport.prepareSubreport(FillTableSubreport.java:175) at net.sf.jasperreports.components.table.fill.FillTable.prepare(FillTable.java:424) at net.sf.jasperreports.engine.fill.JRFillComponentElement.prepare(JRFillComponentElement.java:152) at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:542) at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:453) at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:428) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2585) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:813) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:264) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:110) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:615) at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:413) at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:120) at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:103) at org.wgsoftpro.reposerver.SetReport.fillReport(SetReport.java:469) at org.wgsoftpro.reposerver.SetReport.runReport(SetReport.java:190) at org.wgsoftpro.reposerver.CreateReport.run(CreateReport.java:454) at org.apache.catalina.core.AsyncContextImpl$RunnableWrapper.run(AsyncContextImpl.java:557) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

如果行数较少,则报告运行没有问题。

我在 pom.xml 中有依赖关系来获取 org.apache.commons.javaflow.api

<dependency>
<groupId>net.tascalate.javaflow</groupId>
<artifactId>net.tascalate.javaflow.api</artifactId>
<version>2.4.0</version>
</dependency>

任何建议都会被估计。

更新:我在 net.tascalate.javaflow.api 版本 2.2.1 中遇到了同样的错误

更新 2:我发现如果我们将 pageHeight 调大并且所有数据都适合一页,则一切正常。所以问题与第二页初始化有关

<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="vetmed" language="javascript" pageWidth="595" ***pageHeight="1500"*** columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="c2935bae-a905-4770-8aca-21bb3b76afde">

最佳答案

普通的 JasperReports jar(在 Maven 上发布)未针对 JavaFlow 进行检测。

该 jar 的一个变体可以从 SourceForge 下载。 ,参见 jasperreports-javaflow-6.7.0.jar

但是该 jar 未在 Maven 上发布,因此您需要找到一种在构建中使用它的方法。请参阅this answer一些方法可以做到这一点。

关于java - Jasper Report 使用 javaflow 的子报表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54723525/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com