java - 提供的 java.sql.Connection 对象为空

标签 java jasper-reports

我正在尝试将 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 的新手,所以我有点迷茫.. 我必须指定连接字符串到 de 数据库还是什么?我应该在哪里添加它。

顺便说一句,我正在使用 JSF 2、intellij 和 maven。

谢谢。

最佳答案

我解决了我的问题..我必须为我的报告指定一个数据库连接!

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

关于java - 提供的 java.sql.Connection 对象为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17183317/

相关文章:

java - 尝试使用 POST RestTemplate 调用外部 API 时出现 BadRequest 400

java - JasperReport...首先编译或使用参数填充做什么?

ruby-on-rails - 在 Rails 3 中集成 Jasper

java - 在android中每小时触发一个事件

java - getter 和 setter 会影响 C++/D/Java 中的性能吗?

java - Playframework - 分包 Controller 和路由问题

java - 如何将 jasper-reports 与 spring MVC 一起使用?

jasper-reports - 如何根据表格动态更改详细信息带高度

java - 如何在运行时以编程方式加载字体扩展?

java - EJB3 如何确保在删除 bean 之前发生事情