【问题标题】:Resolve JasperReports resource paths from inside an archive (embedded tomcat application)从存档中解析 JasperReports 资源路径(嵌入式 tomcat 应用程序)
【发布时间】:2015-06-22 15:17:51
【问题描述】:

我有一个报告report.jrxml。报告使用的所有资源都位于同一目录中。图片、子报表和样式等。

目录可能是:classpath:path/to/report/

报告设计中仅按文件名引用所有资源 - 未提供目录。
例如
<imageExpression><![CDATA["logo.png"]]></imageExpression>
<template><![CDATA["style.jrtx"]]></template>

使用 maven 插件编译报告。

应用程序作为单个 jar 文件交付。它是一个运行在嵌入式 tomcat 上的 webapp(通过java -jar app.jar)。它没有经典地部署,也没有解压缩到任何已知的目录结构中。所有资源都直接从 jar 中加载。它适用于以这种方式引用的图像。它根本不适用于样式或子报表。
JasperReports 希望我实现FileResolver 以帮助它找到它无法自行解决的资源。问题是返回类型是file,它不支持从档案中加载文件...

这就是我卡住的地方。为什么 Jasper 引擎可以通过这种方式找到图像,但不能找到其他资源?
我现在能做什么?有什么想法吗?

【问题讨论】:

    标签: java jasper-reports archive filepath


    【解决方案1】:

    尝试以如下方式加载资源:

    <subreportExpression><![CDATA[getClass().getResource("/path/to/report/YourReport.jasper")]]></subreportExpression>
    <template><![CDATA[getClass().getResource("/path/to/report/YourStyle.jrtx")]]></template>
    

    等等。我使用报告的方式与您在上面描述的方式相同(即报告被捆绑到应用程序 jar 中),这种方法对我来说很好。

    【讨论】:

      猜你喜欢
      • 2012-09-22
      • 2011-08-21
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多