Erro Relatório Ireport para Web

Caros desenvolvedores, estou tentando gerar um relatório para web, abaixo está meu código.

Meu ManagedBean que chama o DAO.

@ManagedBean
@RequestScoped
public class RelatorioEntradas implements Serializable{
    private RelatorioDAO dao;
    private RelatorioEntrada entradas;

    public RelatorioEntrada getEntradas() {
        return entradas;
    }

    public void setEntradas(RelatorioEntrada entradas) {
        this.entradas = entradas;
    }

    public RelatorioEntradas() {
       entradas = new RelatorioEntrada();
       System.out.println("Relatório Entrada Criado");
       
    }

   
    
    
    
    public void gerarRelatorio() throws ClassNotFoundException, SQLException {
       Date dataI = entradas.getDataInicial();
       Date dataF = entradas.getDataFinal();
        ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
        ServletContext context = (ServletContext) externalContext.getContext();
        String arquivo = context.getRealPath("WEB-INF/relatorios/entrada.jasper");
        HashMap parametros = new HashMap();
        //parametros.put("dataInicial",dataI);
        //parametros.put("dataFinal", dataF);
        
        dao = new RelatorioDAO();
        JRDataSource jrRS = new JRResultSetDataSource(dao.EntradasResultSet(dataI, dataF));

        gerarRelatorioWeb(jrRS, parametros, arquivo);
    }

    
    
    private void gerarRelatorioWeb(JRDataSource jrRS, Map<Object, Object> parametros, String arquivo) {
        ServletOutputStream servletOutputStream = null;
        
        FacesContext context = FacesContext.getCurrentInstance();
        
        HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();

        try {
            servletOutputStream = response.getOutputStream();
            
            JasperRunManager.runReportToPdfStream(new FileInputStream(new File(arquivo)), response.getOutputStream(), parametros, jrRS);
          
            response.setContentType("application/pdf");
            servletOutputStream.flush();
            servletOutputStream.close();
            //context.getApplication().getStateManager().saveView(context);
            context.renderResponse();
            context.responseComplete();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Meu método do DAO

   public ResultSet EntradasResultSet(Date dataInicial, Date dataFinal) {

        SimpleDateFormat out = new SimpleDateFormat("yyyy/MM/dd");
        String dataI = out.format(dataInicial);
        String dataF = out.format(dataFinal);
        try {

            String query = ("SELECT entraproduto.`qtde_entrada` AS entraproduto_qtde_entrada,entraproduto.`data_entrada` AS entraproduto_data_entrada,produto.`pro_Nome` AS produto_pro_Nome FROM `produto` produto INNER JOIN `entraproduto` entraproduto ON produto.`pro_ID` = entraproduto.`produto_pro_ID` WHERE entraproduto.`data_entrada` BETWEEN ('" + dataI + "') AND ('" + dataF + "')");

            System.out.print(query);
            rs = getStatement().executeQuery(query);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return rs;
    }

Ele gera o relatório, mas o mesmo aparece em branco, sem nenhuma informação do banco.Quando executo dá um erro de -> GRAVE: java.lang.NullPointerException.

Se alguém puder me ajudar fico bem grato!!

Em qual linha? Coloca a parte do erro que mostra o null pointer.

Ele vai apontar a linha exata em que aconteceu o erro.

Nesta Linha :

gerarRelatorioWeb(jrRS, parametros, arquivo);

[quote=alexandresobral2004]Nesta Linha :

gerarRelatorioWeb(jrRS, parametros, arquivo); [/quote]Prometo que não é aí! =P

Declaração de método não gera nullpointer.

Coloca o erro todo.

No seu relatório quando você visualiza ele… esta gerando normalmente?

Digo, no jasper?

Amigos, descobri a causa do problema. Quando eu colocava a consulta usada no relatório no meu DAO, ela vinha com algumas quebras de linha “\n” e acredito eu que por conta disso o select vinha nulo.Então removí os “\n” e deixei o select numa linha só, como os usados normalmente nas outras consultas.Então o relatório veio preenchido.

grato a quem se dispos a me auxiliar!!

att.

Alexandre Rocha
Desenvolvedor JAVA

Bacana cara…

=D