Java 在servlet中使用JResultSetDataSource
现在报告上没有任何内容。我也没有得到任何错误。即使报表上的静态数据也不会出现在报表上。仅生成空文档 我在这件事上浪费了很多时间,请帮帮我Java 在servlet中使用JResultSetDataSource,java,jasper-reports,Java,Jasper Reports,现在报告上没有任何内容。我也没有得到任何错误。即使报表上的静态数据也不会出现在报表上。仅生成空文档 我在这件事上浪费了很多时间,请帮帮我 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/pdf");
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/pdf");
ServletOutputStream servletOutputstream = response.getOutputStream();
InputStream reportStream = getServletConfig().getServletContext().
getResourceAsStream("/report-src/Payment.jasper");
/* Here I am checking whether I am getting refrence of .jasper as
stream or not*/
System.out.println(reportStream);
try {
// Here i am establishing connection with database
Connection connection = Dbconn.getConnection();
Statement stmt = connection.createStatement();
/* Here I am fetching values using resultset with query
as I want to give the condition in where clause. At this servlet
which will be decided on the basis of request comes on this servlet
so I am using object of this resultset and will pass it as
parameter in the constructor of JRResultSetData */
ResultSet rset = stmt.executeQuery(query);
JRResultSetDataSource datasource = new JRResultSetDataSource(rset);
/* In this while loop I am checking whether I am getting
values in ResultSet */
while (rset.next()) {
System.out.println(rset.getString(2));
}
/* Here is the main problem as I think because I am passing object
of JRResultSet and passing this object in method to generate the report
in pdf format */
JasperRunManager.runReportToPdfStream(reportStream, servletOutputstream,
new HashMap(), datasource);
servletOutputstream.flush();
servletOutputstream.close();
} catch (Exception e) {
// display stack trace in the browser
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
e.printStackTrace(printWriter);
response.setContentType("text/plain");
response.getOutputStream().print(stringWriter.toString());
}
}