Relatório dinâmico com JasperReports

Pessoal desculpa, vim pedir ajuda, depois de tanto tempo, porem é o único post que achei na internet sobre este assunto

Bom,l estou fazendo um relatorio dinamicamente com o JasperReport mais não aparece nada

Veja o código

JasperDesign

private JasperDesign getJasperDesign(List<JFreeChart> freesCharts)  
            throws JRException {  
  
        JasperDesign design = new JasperDesign();  
  
        design.setName("RelatorioGraficoSimilaridade");  
        design.setPageWidth(1100);  
        design.setPageHeight(600);  
        design.setColumnCount(1);  
        design.setColumnWidth(540);  
        design.setColumnSpacing(0);  
        design.setLeftMargin(0);  
        design.setRightMargin(0);  
        design.setTopMargin(0);  
        design.setBottomMargin(0);  
  
        JRDesignBand titulo = new JRDesignBand();  
        titulo.setHeight(70);  
        JRDesignStaticText staticText = new JRDesignStaticText();  
        staticText.setX(170);  
        staticText.setY(18);  
        staticText.setWidth(300);  
        staticText.setHeight(32);  
        staticText.setFontName("Tahoma");  
        staticText.setPdfFontName("Helvetica-Bold");  
        staticText.setFontSize(24);  
        staticText.setBold(true);  
        staticText.setHorizontalAlignment(HorizontalAlignEnum.CENTER);  
        staticText.setText("Relatório Grafico Similaridade");  
        titulo.addElement(staticText);  
        design.setTitle(titulo);  
  
        JRDesignBand colunaCabecalho = new JRDesignBand();  
          
        JRDesignBand detalhe = new JRDesignBand();  
  
        for (int i = 0; i < freesCharts.size(); i++) {  
  
            JRDesignParameter parametro = new JRDesignParameter();  
            String nomeParametro = i + "imagem";  
            parametro.setName(nomeParametro);  
            parametro.setValueClass(java.awt.Image.class);  
            design.addParameter(parametro);  
  
            JRDesignImage image = new JRDesignImage(design);  
            image.setX(100);  
            image.setY(0);  
            image.setHeight(151);  
            image.setWidth(201);  
            JRDesignExpression expression = new JRDesignExpression();  
            expression.setValueClass(Image.class);  
            expression.setText("$P{" + nomeParametro + "}");  
            image.setExpression(expression);  
              
            detalhe.setHeight(200);  
            detalhe.addElement(image);  
  
        }  
  
        design.setColumnHeader(colunaCabecalho);  
        design.setDetail(detalhe);  
  
        return design;  
    }  

gerarRelatorio

public void gerarRelatorio() {  
    ServletOutputStream ouputStream = null;  
    List<JFreeChart> freesCharts = this.gerarGraficos(); (Obs: este metodo gera as imagens corretas pois ja fiz teste unitario)  
    try {  
        JasperDesign desenho = getJasperDesign(freesCharts);  
        JasperReport relatorio = JasperCompileManager.compileReport(desenho);  
        Map<String,Object> parametro = new HashMap<String,Object>();  
        for (int i = 0 ; i < freesCharts.size(); i++) {  
            Image imagem = freesCharts.get(i).createBufferedImage(200, 150);    
            String nomeParametro = i+"imagem";  
            parametro.put(nomeParametro, imagem);    
        }  
        JasperPrint relatorioFinal = JasperFillManager.fillReport(relatorio, parametro);  
        FacesContext facesContext = FacesContext.getCurrentInstance();  
        HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();  
        response.setContentType("application/pdf");  
        response.addHeader("Content-Disposition","attachment; filename=RelatorioGraficoSimilaridade.pdf");  
        ouputStream = response.getOutputStream();  
        JRPdfExporter exporterPdf = new JRPdfExporter();  
        exporterPdf.setParameter(JRPdfExporterParameter.JASPER_PRINT, relatorioFinal);  
        exporterPdf.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, ouputStream);  
        exporterPdf.exportReport();  
        facesContext.responseComplete();  
        ouputStream.flush();  
          
  
    } catch (IOException ex) {  
        ex.printStackTrace();  
    } catch (JRException ex) {  
        ex.printStackTrace();  
    } finally {  
        if (ouputStream != null) {  
            try {  
                ouputStream.close();  
            } catch (IOException ex) {  
                ex.printStackTrace();  
            }  
        }  
    }  
}  

Pessoal o relatório apenas gera um folha em branco , nem o título ele está gerando, alguem sabe o que pode ser?

Desta ja agradeço