2013-06-19 5 views
5

イムnullである:供給java.sql.ConnectionオブジェクトはPDFにjrxmlファイルをエクスポートしようとしているが、私はこのエラーを取得

WARN query.JRJdbcQueryExecuter - The supplied java.sql.Connection object is null. 

私は空白のPDFファイルを取得。..

このPDFにエクスポートする私の方法です:

public void printReport(ActionEvent event) throws JRException, IOException { 

     String reportPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/test.jrxml"); 
     JasperReport report = JasperCompileManager.compileReport(reportPath); 
     JasperPrint jasperPrint = JasperFillManager.fillReport(report, new HashMap<String, String>()); 
     HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); 
     httpServletResponse.addHeader("Content-disposition", "attachment; filename=report.pdf"); 
     ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream(); 
     JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream); 
     FacesContext.getCurrentInstance().responseComplete(); 
    } 

私は少し迷ってしまいましたので、JasperReportsを持つ新たなんだ..私は、データベースまたは何を解除するために、接続文字列を指定する必要がありますか?どこに追加すればいいですか?

私はJSF 2、intellij、およびmavenを使用しています。

ありがとうございました。

答えて

9

私の問題を解決しました。私は私のレポートのDB接続を指定しなければなりませんでした!

Connection conn; 
     try { 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     conn = DriverManager.getConnection("jdbc:sqlserver://localhost:55334;databaseName=Frutemu;integratedSecurity=true","",""); 
     } catch (SQLException ex) { 
     } catch (ClassNotFoundException ex) { 

     } 

し、このラインに接続を追加:

JasperPrint jasperPrint = JasperFillManager.fillReport(report, new HashMap<String, String>(), conn); 
+0

ありがとうございました。これは動作します:) –

関連する問題