Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JasperReports打印空PDF_Java_Jsp_Servlets_Jasper Reports - Fatal编程技术网

Java JasperReports打印空PDF

Java JasperReports打印空PDF,java,jsp,servlets,jasper-reports,Java,Jsp,Servlets,Jasper Reports,我正在尝试使用JasperReports和Javaservlet从数据库中的数据生成pdf文件。我第一次成功地生成了一个包含数据库中数据的pdf文件。然后我在数据库表中做了一些更改,重新创建了jrxml文件,并使用该jrxml文件创建了一个jasper文件。但现在,当我试图生成pdf时,pdf文件总是空的 我的Servlet中的代码 response.setContentType("application/pdf"); try { HttpSession hs = request.ge

我正在尝试使用JasperReports和Javaservlet从数据库中的数据生成pdf文件。我第一次成功地生成了一个包含数据库中数据的pdf文件。然后我在数据库表中做了一些更改,重新创建了
jrxml
文件,并使用该
jrxml
文件创建了一个
jasper
文件。但现在,当我试图生成pdf时,pdf文件总是空的

我的Servlet中的代码

response.setContentType("application/pdf");
try {

    HttpSession hs = request.getSession();
    String id = (String) hs.getAttribute("id");

    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/exam", "root", "pass");
    Statement statement = con.createStatement();
    ResultSet resultSet = statement.executeQuery 
            ("SELECT marks, date_time FROM result where sub_id = 1  and user_id = 3");

    ServletOutputStream set = response.getOutputStream();
    InputStream re = getServletConfig().getServletContext().getResourceAsStream("./results.jasper");
    JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(resultSet);
    JasperRunManager.runReportToPdfStream(re,set, new HashMap(), resultSetDataSource);

} catch (Exception e) {

}

我如何解决这个问题?

将每个
捕获更改为

...
} catch (Exception e) { 
    e.printStackTrace(); 
}

这将提供出错的详细信息,以及出错的位置。

将每个
捕获更改为

...
} catch (Exception e) { 
    e.printStackTrace(); 
}

这将提供出错的详细信息,以及出错的位置。

@andrewhompson
NullPointerException
下一行
JasperRunManager.runReportToPdfStream(re,set,new HashMap(),resultSetDataSource)确定。。因此,
re
set
resultSetDataSource
中的哪一个是
null
?@我发现了错误。我原来的
.jasper
文件名是
Results.jasper
。但是在我的代码中,我把它作为
结果。jasper
。我纠正了它。现在,在堆栈跟踪上打印时没有任何错误。但是当我运行servlet时,不会生成pdf文件。@AndrewThompson现在我已经创建了一个新项目,并编写了一个servlet并运行该项目。然后生成pdf文件。所以我再次运行我以前的项目。现在它工作正常,没有错误。它还生成了一个pdf文件。很高兴你把它整理好了。:)我补充了我的建议。堆栈跟踪作为一个答案(我认为它会以某种方式帮助解决问题)。@andrewhompson
NullPointerException
withlow-line
JasperRunManager.runReportToPdfStream(re,set,new HashMap(),resultSetDataSource)确定。。因此,
re
set
resultSetDataSource
中的哪一个是
null
?@我发现了错误。我原来的
.jasper
文件名是
Results.jasper
。但是在我的代码中,我把它作为
结果。jasper
。我纠正了它。现在,在堆栈跟踪上打印时没有任何错误。但是当我运行servlet时,不会生成pdf文件。@AndrewThompson现在我已经创建了一个新项目,并编写了一个servlet并运行该项目。然后生成pdf文件。所以我再次运行我以前的项目。现在它工作正常,没有错误。它还生成了一个pdf文件。很高兴你把它整理好了。:)我补充了我的建议。堆栈跟踪作为一个答案(我认为它会以某种方式帮助解决问题)。