6

jrxml ファイルを pdf にエクスポートしようとしていますが、次のエラーが発生します。

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を使用しています。

ありがとう。

4

2 に答える 2

11

問題を解決しました..レポートに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);
于 2013-06-19T17:54:21.793 に答える