【问题标题】:JasperReport: Parse Error at line 2 column 487,Document root element "jasperReport", must match DOCTYPE root "null"JasperReport:第 2 行第 487 列解析错误,文档根元素“jasperReport”,必须匹配 DOCTYPE 根“null”
【发布时间】:2014-06-24 10:56:05
【问题描述】:

我正在尝试使用 java 代码从 jrxml 文件制作 pdf,但它给了我以下错误:

SEVERE: Parse Error at line 2 column 487: Document root element "jasperReport", must match DOCTYPE root "null".
org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 487; Document root element "jasperReport", must match DOCTYPE root "null".
......

我的代码:主类:

    public class MainClass_Dummy {
public static JasperDesign jasperDesign;
public static JasperPrint jasperPrint;
public static JasperReport jasperReport;
public static String filename = "D://ReceiptReport.jrxml";
public static String outputreport = "D://test_jasper.pdf";
static JRBeanCollectionDataSource jrBeanCollectionDataSource;
public MainClass_Dummy(){
try{
        System.out.println("Loading a jrxml file..");
        FileInputStream input = new FileInputStream(new File(filename));
        jasperDesign = JRXmlLoader.load(input); 
        jasperReport = JasperCompileManager.compileReport(jasperDesign);
        jasperPrint = JasperFillManager.fillReport(jasperReport, null, jrBeanCollectionDataSource);
        Desktop.getDesktop().open(new File("D:/ReceiptReport.pdf"));
        }catch(Exception e){e.printStackTrace();}
        }
public static void main(String[] args) {
            Dummy_MainClass dm = new Dummy_MainClass();
            new MainClass_Dummy();  }
    }

它成功创建了jrxml,并且在ireport 5.5.0中运行良好,但是当我在eclipse中运行它时出现错误,请任何人有解决方案然后告诉我。

问候。

【问题讨论】:

标签: java jasper-reports


【解决方案1】:
  1. 这可能是由于您的 ireport 和项目库中可用的 jar 文件中的版本冲突引起的。复制您在 ireport 设计器中使用的相同 jasper.jar 文件并将其添加到您的项目中。

  2. 在您的程序中加载 .JRXML 文件不是一个好主意。您可以先在 ireport IDE 中编译它,然后按如下方式加载编译后的文件 .JASPER

    jasperPrint = JasperFillManager.fillReport( new FileInputStream(pathtoReport), parameters, connection);

【讨论】:

  • 我使用了 jaspersoft ireport 5.5.0 工具,请告诉我从哪里复制该 jasper.jar。
  • 我正在尝试从 java 代码制作此报告。我正在使用 jasperreport 5.5.0.jar
  • 在 windows 中它位于 C:\Program Files\Jaspersoft\iReport-5.x.x\ireport\modules\ext 下
  • @soulemanemoumie It is not a good idea to load the .JRXML file in your program - 为什么这不是一个好主意?
  • 效率不高,因为每次运行程序时,它都会先将 .jxxml 编译为 .jasper,然后再将其转换为 PDF。该步骤是不必要且耗时的,对于小型报告没有问题,但对于网络应用程序的大型报告可能会成为问题。
【解决方案2】:

这是因为jar文件的版本不同,我只是更改了旧的jar文件并添加了当前版本的jar,即5.5.0版本,它工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    相关资源
    最近更新 更多