2013-06-19 13 views
5

im próbuje wyeksportować plik jrxml do formatu PDF, ale pojawia się ten błąd:Dostarczony przedmiot java.sql.Connection jest null

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

tylko uzyskać pusty plik pdf ..

ten to mój sposób wyeksportować do pliku 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(); 
    } 

jestem nowy z JasperReports więc jestem trochę zagubiony .. czy muszę podać ciąg połączenia do de bazy danych czy co? i gdzie powinienem go dodać.

BTW, używam JSF 2, intellij i maven.

dzięki.

Odpowiedz

9

Rozwiązałem mój problem .. musiałem określić połączenie DB dla mojego raportu!

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

     } 

a następnie dodać w tej linii połączenia:

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

dziękuję. To działa :) –

Powiązane problemy