【问题标题】:Loading jasperreports' .jrxml files加载 jasperreports 的 .jrxml 文件
【发布时间】:2012-05-18 06:15:55
【问题描述】:

在我的项目中,我将 .jrxml 文件存储在一个名为 com/bio/ofm/mnu/views/reports/jasperReports/ 的包中 当我尝试加载 .jrxml 时出现以下错误,

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: com/bio/ofm/mnu/views/reports/jasperReports/repAuditReport.jrxml (No such file or directory)
        at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:174)
        at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:154)
        at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:146)
        at com.bio.ofm.mnu.views.panels.RepAuditReport$2.run(RepAuditReport.java:87)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.io.FileNotFoundException: com/bio/ofm/mnu/views/reports/jasperReports/repAuditReport.jrxml (No such file or directory)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:138)
        at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:169)
        ... 4 more

这就是我加载文件的方式,

String fileName = getClass().getClassLoader().getResource("com/bio/ofm/mnu/views/reports/jasperReports/repAuditReport.jrxml").getFile();    

   JasperReport report = JasperCompileManager.compileReport("com/bio/ofm/mnu/views/reports/jasperReports/repAuditReport.jrxml");

请帮忙

【问题讨论】:

  • 你应该检查文件是否在输出文件夹(你的类文件所在的位置),而不是你的源文件夹。
  • :@Rangi Lin - 如前所述,我已将这些 .jrxml 放入一个包中
  • 你在用webapp吗??如果是,比哪个(即弹簧等)?我的猜测是该文件不在您的类路径中,或者您的应用程序不知道它。!

标签: java jasper-reports


【解决方案1】:

当像下面这样将文件作为流加载时,

InputStream in = this.getClass().getClassLoader().getResourceAsStream("com/bio/ofm/mnu/views/reports/jasperReports/repAuditReport.jrxml");

JasperReport report = JasperCompileManager.compileReport(in);

【讨论】:

    【解决方案2】:

    我正在这样编写我的报告:

    ByteArrayInputStream is = MyRenderer.class.getClassLoader().getResourceAsStream("anytemplate.jrxml");
    
    JasperDesign jasperDesign = JRXmlLoader.load(is);
    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多