当前位置: 首页 > 知识库问答 >
问题:

在Tomcat下加载jrxml文件

韦正业
2023-03-14
FastReportBuilder drb = new FastReportBuilder()
drb.setTemplateFile("resources/reportTemplate.jrxml")

DynamicReport report = reportBuilder.call(drb)

JRDataSource ds = new JRMapCollectionDataSource(data)

JasperPrint jp = DynamicJasperHelper.generateJasperPrint(report, new ClassicLayoutManager(), ds)
ReportWriter reportWriter = ReportWriterFactory.getInstance().getReportWriter(jp, format, [:])
reportWriter.writeTo(response)

它抛出以下错误:

java.lang.NullPointerException
at ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperDesign(DynamicJasperHelper.java:151)
at ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperReport(DynamicJasperHelper.java:448)
at ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperPrint(DynamicJasperHelper.java:234)
at ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperPrint(DynamicJasperHelper.java:187)
at com.giivpro.services.analytics.JasperReportsService.runReport(JasperReportsService.groovy:30)

共有1个答案

王楚青
2023-03-14

我最终意识到,这并不是由于我最初认为的升级到tomcat7,而是由于应用程序的部署方式在同一时间发生了变化。

应用程序的所有jar文件依赖项现在都被复制到/var/lib/tomcat/lib,而不是部署在war文件中。这意味着DynamicJasperHelper中的行

URL url = DynamicJasperHelper.class.getClassLoader().getResource(dr.getTemplateFileName());

现在由于对类加载程序的安全限制而失败。/var/lib/tomcat/lib中的JAR由单独的类加载器加载,并且不能从特定的WAR文件加载资源。

 类似资料:
  • 当我试图加载jrxml文件时,它会抛出下面的异常;

  • 有人知道吗? PS:我正在使用iReport 5(甚至尝试了4)和DynamicJasper 3.1.8。

  • 我有一个项目,其中包含页面文件夹中的单个页面以及一些javascript库和代码。我将它们捆绑到WAR中并将其部署在CentOS系统中。但是当我尝试访问它时,我得到了错误。错误交替出现在 和 我在本地机器中部署它没有问题。 编辑:配置 这是CentOS中tomcat的配置,我的本地机配置相同,除了

  • 问题内容: 这是我尝试将Maven项目部署到tomcat时遇到的错误 错误: 但是WEB-INF \ lib中有javax.servlet-api-3.0.1.jar 问题答案: 信息:validateJarFile(D:\ Softwares \ tomcat \ apache-tomcat-7.0.50 \ webapps \ myWebApp_1 1 \ WEB-INF \ lib \ ja

  • 问题内容: 我在 Java 应用程序中使用 JasperReports 。 __ 我有一个名为“ reports”的包,用于存储所有生成的报告。这是我在应用程序中调用jasper报告的方式。 可以了 我没有给出完整的路径,而是尝试了: 但这在运行程序时显示错误: 不适合提供 JRXmlLoader 的完整路径,因为如果要在其他计算机上运行此应用程序,则必须根据计算机路径更改所有编码。所以帮我 问题

  • 下面是我的表格: 截取方法如下: 我添加了以下bean: