Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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 获得;生成报告时出错。未知打印顺序0“;调用JasperFillManager.fillReport方法时出错_Java_Jakarta Ee_Jasper Reports_Tomcat5.5_Subreport - Fatal编程技术网

Java 获得;生成报告时出错。未知打印顺序0“;调用JasperFillManager.fillReport方法时出错

Java 获得;生成报告时出错。未知打印顺序0“;调用JasperFillManager.fillReport方法时出错,java,jakarta-ee,jasper-reports,tomcat5.5,subreport,Java,Jakarta Ee,Jasper Reports,Tomcat5.5,Subreport,我正在使用Java6、DynamicWebModule 2.4、Tomcat5.5和MySQL 5.5开发一个JavaEE应用程序 我们使用的是JR报告,由iReport设计。除了一个,所有的都能正常工作。奇怪的是,这个报告以前工作正常,我们没有更改代码中的任何内容…(配置问题?) 执行报告时,错误如下: org.apache.jasper.JasperException: getOutputStream() has already been called for this response

我正在使用Java6、DynamicWebModule 2.4、Tomcat5.5和MySQL 5.5开发一个JavaEE应用程序

我们使用的是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)
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)
控制台会这样说:

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(列表信息、InformeGestionFormBean gestionBean、HttpServletRequest请求、HttpServletResponse响应、字符串描述符dispo){
试一试{
. . . 
InputStream=null;
字符串标题=”;
is=informeGestionAction.class.getClassLoader().getResourceAsStream(ruta+“InformeCuadroGestion.jrxml”);
header=“附件;文件名=\”InformeCuadroGestion”;
jreporter=null;
JasperReport report=jaspecpompilemanager.compileReport(is);
茉莉花;
JRBeanCollectionDataSource datos=新的JRBeanCollectionDataSource(信息);
jasperPrint=JasperFillManager.fillReport(reporte,parametros,datos);
调用
JasperFillManager.fillReport
时出错

报告的XML代码为:


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

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

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

求求你,我绝望了!你能帮我吗


非常抱歉!我第一篇文章中的错误不是初始错误。初始错误如下:

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)
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编译报告(包括子报告)时,它编译正常,所以我认为这不是编译问题。 我们的应用程序generetes.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\u DIR}变量。 为什么不将sub-report.jasper文件作为hashmap传递到fill manager.fillreport的第二个参数中呢。 在主报表中创建一个参数字段作为数据源。
您的数据源表达式似乎很好。

再次您好,感谢您的支持

我想报告一些重要的事情。 当我从以下位置更改jrxml文件中的头时:

<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">


您是否使用小型控制台应用程序检查了此报表?它是否工作?您需要获取完整的堆栈跟踪。您是否编译了子报表并将其传递给主报表?子报表是否正确编译。在xml文件中,表达式是:表达式似乎很好。正如我提到的,问题可能在$P{subreport_DIR}中。我将告诉您访问.jasper文件时所做的操作。我将它们放置在生成路径中,并以JasperReport sub_report=(JasperReport)JRLoader.loadObject(this.class.getResourceAsStream(“/filename.jasper”))的形式访问它们;这是一个“不要这样做”的建议吗“或者这是一个新问题?问题已经解决。当我更改jrxml文件中的头时,请更新jasperreport库。并更新一些标记。报告工作正常!!!非常感谢!!!