gpt4 book ai didi

java - 调用 JasperFillManager.fillReport 方法时出现 "error generating report. Unknown print order 0"错误

转载 作者:行者123 更新时间:2023-12-03 20:54:28 27 4
gpt4 key购买 nike

这个问题不太可能帮助任何 future 的访客;它只与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the help center .




9年前关闭。




我正在使用 Java 6、Dynamic Web Module 2.4、Tomcat 5.5 和 MySQL 5.5 开发 Java EE 应用程序。

我们正在使用 JR 报告,使用 iReport 设计。所有这些都正常工作,但只有一个。奇怪的是,这个报告之前运行正常,而我们并没有更改代码中的任何内容……(配置问题?)。

当我们执行报告时,错误是这样的:

org.apache.jasper.JasperException: getOutputStream() has already been called for this response
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:500)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:407)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

控制台这样说:
error generando informe Unkown print order 0.
net.sf.jasperreports.engine.JRRuntimeException: Unkown print order 0.
at net.sf.jasperreports.engine.fill.JRFillSubreport.initSubreportFiller(JRFillSubreport.java:390)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:359)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:260)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:275)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:426)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1380)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:692)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:113)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:888)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:810)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at com.tsystems.web.ModuloInformes.InformesNuevos.InformeGestion.Actions.InformeGestionAction.generarReporte(InformeGestionAction.java:1655)
at com.tsystems.web.ModuloInformes.InformesNuevos.InformeGestion.Actions.InformeGestionAction.generarInformeGestion(InformeGestionAction.java:222)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.tsystems.web.common.FiltroSeguridad.doFilter(FiltroSeguridad.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)

执行报告的操作(Java 方法)是这样的:

    private void generarReporte(List info, InformeGestionFormBean gestionBean, HttpServletRequest request, HttpServletResponse response, String descripDispo) {
try {
. . .
InputStream is = null;
String header = "";
is = informeGestionAction.class.getClassLoader().getResourceAsStream(ruta + "InformeCuadroGestion.jrxml");

header = "attachment; filename=\"InformeCuadroGestion";

JRExporter exporter = null;
JasperReport reporte = JasperCompileManager.compileReport(is);
JasperPrint jasperPrint;
JRBeanCollectionDataSource datos = new JRBeanCollectionDataSource(info);

jasperPrint = JasperFillManager.fillReport(reporte, parametros, datos);
JasperFillManager.fillReport 时出现错误叫做。

报告的 XML 代码是:

<field name="bloqueInforme1" class="java.util.List"/>
<subreport isUsingCache="true">
<reportElement x="0" y="6" width="782"height="10" key="subreport-1"positionType="Float"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{bloqueInforme1})]]></dataSourceExpression>
<subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + "PDFInformeCuadroGestionSub1.jasper"]]></subreportExpression>
</subreport>
</jasperReport>

我们关注了 bloqueinforme1 Java 代码期间的值。 bloqueinforme1 是一个列表,其中包含报告信息的列表,我们已经看到这些值是正确的。该错误似乎出现在主报告使用的子报告中。

我一直专注于 中的一个字段(例如 项目 ) bloqueinforme1 .我们可以正确打印和获取项目值,但是当我们仅使用 执行报告时项目 ,报告说找不到项目。

我们不知道错误原因;可能是列表列表(它找不到子列表);或配置问题(我们不得不将动态模块从 3.0 更改为 2.4)。

拜托,我很绝望!你能帮助我吗?

我很抱歉!我第一篇文章的错误不是最初的错误。最初的错误是这样的:
Could not load object from location : ..\..\iReport\PDFInformeCuadroGestionSub1.jasper
net.sf.jasperreports.engine.JRException: Could not load object from location : ..\..\iReport\PDFInformeCuadroGestionSub1.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObjectFromLocation(JRLoader.java:271)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:311)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:260)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:275)

我们有很多报告工作正常。唯一失败的是唯一一个有子报表的。当我用 iReport 编译报告(包括子报告)时,它编译正常,所以我认为不是编译问题。
我们的应用程序在运行时生成 .japer 文件。该报告以前运行良好,但现在...
我们用作参数来指定生成报告和子报告的位置的路径,我的意思是.jasper 文件,是一个相对路径:../../iReport。我尝试了绝对路径,但是当我尝试这条路径时:
C:/Documents and Settings/Administrador/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/phnemos_ph/iReport/

我收到此错误:
net.sf.jasperreports.engine.JRException: java.net.MalformedURLException

我从几周前就开始解决这个问题了。我需要帮助,你能告诉我的一切都会很棒。非常感谢你!!

最佳答案

我觉得问题可能是因为 $P{SUBREPORT_DIR} 变量。
为什么不将 sub-report.jasper 文件作为 <"DATA_SOURCE",jasperreport file> 作为填充管理器.fillreport 的第二个参数中的哈希图传递。
在主报告中创建一个参数字段作为 DATA_SOURCE。
您的数据源表达式似乎很好。

关于java - 调用 JasperFillManager.fillReport 方法时出现 "error generating report. Unknown print order 0"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12216176/

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