Err*_*ion 1 java jasper-reports filenotfoundexception
我通过预先设计的Jrxml文件从My Java Web Application创建Jasper报告.该文件位于名为jrxml的目录中的My 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());
}
}
Run Code Online (Sandbox Code Playgroud)
我收到文件未找到异常,因为应用程序期望文件在某处;
C:\Program Files\glassfish-3.1.2.2\glassfish\domains\TestDom\jrxml\
Run Code Online (Sandbox Code Playgroud)
如何在我的Web文件夹中读取此文件以及如何在同一文件夹中创建报告?
编辑如果我不提供任何路径如果jrxml文件位于该位置,我的报告将在C:\ Program Files\glassfish-3.1.2.2\glassfish\domains\TestDom \生成.
你在这里做错了,你试图在你的java类的web文件夹中找到你的jrxml文件.由于上下文路径不正确,这肯定会在运行时引发"文件未找到错误".您可以简单地执行以下操作: -
在您的java类中,加载类加载器并按名称找到jrxml,您将轻松访问它.这是代码: -
ClassLoader 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);
Run Code Online (Sandbox Code Playgroud)
您的html文件将在所需的目的地生成,您可以通过您的网页轻松阅读和呈现它.
| 归档时间: |
|
| 查看次数: |
7804 次 |
| 最近记录: |