gpt4 book ai didi

java - 在 Java Web 应用程序上使用 JasperReports 获取 'File Not Found Exception'

转载 作者:行者123 更新时间:2023-11-29 07:07:27 25 4
gpt4 key购买 nike

我正在通过预先设计的 Jrxml 文件从我的 Java Web 应用程序创建 Jasper 报告。该文件位于名为 jrxml 的目录中的我的 Web 文件夹 (Netbeans) 中,因此我试图使用此方法获取它。

public void generateChurchReport(IncomeExpenseBean ieb) {
church = ieb.getChurch();
user = ieb.getUser();
String currdate = dt.getCurrentDate();
Connection conn = db.getDbConnection();
Map parameters = new HashMap();
try{
parameters.put("ChurchName", church);
JasperReport jasperReport = JasperCompileManager.compileReport("/jrxml/ChurchIncome_expenseReport.jrxml");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);
File f = new File(user + church+ currdate + ".pdf");
JasperExportManager.exportReportToPdfFile(jasperPrint, f.getAbsolutePath());
Desktop.getDesktop().open(new File(f.getAbsolutePath()));
}catch(Exception asd){
System.out.println(asd.getMessage());
}

}

我收到文件未找到异常,因为应用程序期望文件位于 ;

  C:\Program Files\glassfish-3.1.2.2\glassfish\domains\TestDom\jrxml\

如何在我的 Web 文件夹中读取此文件以及如何在同一文件夹中创建报告?

编辑 如果我不提供任何路径,如果 jrxml 文件位于该位置,我的报告将在 C:\Program Files\glassfish-3.1.2.2\glassfish\domains\TestDom\生成.

最佳答案

你在这里做错的是,你试图从你的 java 类中找到你的 jrxml 文件在 web 文件夹中的某个地方。由于上下文路径不正确,这肯定会在运行时引发“文件未找到错误”。您可以简单地执行以下操作:-

  1. 在您的 java 类包下创建一个名为“Jrxml”的文件夹。假设java类包是com.ejb.beans,创建一个文件夹com.ejb.beans.jrxml
  2. 将所有 jrxml 文件放入此文件夹。
  3. 在您的 java 类中,加载类加载器 并根据名称找到jrxml,您将可以轻松访问它。这是代码:-

    类加载器 classLoader = getClass().getClassLoader();

    InputStream url = null;

    url = classLoader.getResourceAsStream("Report.jrxml");

    此 url 可用于将报告编译为:-

    JasperReport jasperReport = JasperCompileManager.compileReport(url);

要创建报告输出文件,您可以将其存储在应用程序服务器中的某个路径中。在环境变量中设置您的服务器路径,并在运行时将其提取到您的类中,如下所示:-

String serverHomeDir = System.getProperty("server.home.dir");

String reportDestination = serverHomeDir + "/domains/ReportOutput/report.html";

// now print report at reportDestination
JasperExportManager.exportReportToHtmlFile(jasperPrint, reportDestination);

您的 html 文件将在所需的目的地生成,您可以通过网页轻松阅读和呈现它,以您想要的方式。

关于java - 在 Java Web 应用程序上使用 JasperReports 获取 'File Not Found Exception',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18181296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com