2013-06-19 4 views
5

им пытаются экспортировать jrxml файл в формате PDF, но я получаю эту ошибку:Прилагаемый объект java.sql.Connection является нулевым

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

Я решил свою проблему .. Мне пришлось указать подключение к БД для моего отчета!

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

Спасибо. Это работает :) –

Смежные вопросы