我正在使用 Java , JBoss 5.1 , EJB 和 JasperReports 库来生成报告。
我们有一个带子报表的jrxml,子报表表达式是 $P{SUBREPORT_DIR} + "ACC0401-RebatePayableAgingClosedLoans - SR1.jasper"
从 Java 传递 $P{SUBREPORT_DIR}
并且文件名即“ACC0401-RebatePayableAgingClosedLoans - SR1.jasper”已知只报告。
Java不知道文件名 "ACC0401-RebatePayableAgingClosedLoans - SR1.jasper"
,因此我无法使用 getResourceAsStream()
。
现在,我想从 Java 代码传递以下绝对路径,该路径基本上位于EAR文件中。
/usr/local/jboss5.1.0.GA/server/default/deploy/OceanviewEAR.ear/OceanviewEJB.jar/com/oceanview/jasper/resource/config
我的问题是:在 Java 中,如何获取EAR文件的绝对路径,以便我可以将该绝对路径传递给 JR 报告,然后报告将是能够找到实际的 .jasper 文件。
答案 0 :(得分:0)
这对我有用:使用URL而不是绝对路径。
InputStream url = getClass().getClassLoader().getResourceAsStream("/Report.jasper");
JasperPrint jasperPrint = JasperFillManager.fillReport(url, params, ds);