2012-02-03 24 views
0

私は、JasperReportsを使ってデータベース内のデータからPDFファイルを生成しようとしています。初めてデータベースのデータを使ってpdfファイルを生成しました。その後、データベーステーブルを変更してjrxmlファイルを再作成し、そのjrxmlファイルを使用してjasperファイルを作成しました。しかし、今私はpdfを生成しようとしているとき、pdfファイルは常に空です。JasperReports Print Empty PDF

コード私のサーブレットで

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) { 

} 

どのように私はこの問題を解決するだろうか?

+0

@AndrewThompson '線 'JasperRunManager.runReportToPdfStream以下とNullPointerException'(再度、セット、新しいHashMapの()、resultSetDataSource);' – Bishan

+0

OK ..そう 're'、' set'または 'の一つresultSetDataSource'は 'null'ですか? –

+0

@AndrewThompsonエラーが見つかりました。私の元の '.jasper'ファイル名は' Results.jasper'です。私のコードでは 'results.jasper'としました。私はそれを訂正した。スタックトレースには何もエラーはありません。サーブレットを実行すると、pdfファイルは生成されません。 – Bishan

答えて

3

変更間違って、どこでされているものの詳細を提供します

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

にすべてのcatch