Bom dia Edson.
Obrigado pela dica do pop up.
Sim estou pesquisando muito e tudo que eu vi até agora foram por meios de servlet.
O código de como eu gero o relatório (É um pouco grande por que é para gerar um boleto feito no iReport):
[code]  public void gerarDocumentoDare() {
	// Classes de Formatação
	
	SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		
	SimpleDateFormat hora = new SimpleDateFormat("dd/MM/yyyy / HH:mm:ss");
	
	NumberFormat valor = new DecimalFormat("###0.00");
	
	try {
		// Lista de Parâmetros estáticos
		Map<String, String> params = new HashMap<String, String>();
		// Lista de registro
		// List<DocumentoArrec> listarDadosDare=
		// documentoArrecNeg.listarDadosDocumento();
		DocumentoArrec documento = documentoArrecNeg.consultar(64);//
	//	DocumentoArrec documento = documentoArrecNeg.consultar(getDocumentoArrec().getIdDocumentoArrec());
	//	DocumentoArrec documento =getDocumentoArrec();
		
		List<Map<String, String>> fields = new ArrayList<Map<String, String>>();
		Map<String, String> mapItemRelatorio = new HashMap<String, String>();
		if (documento.getNumrReservadoProcesm() != null)
			mapItemRelatorio.put("numDare", documento
					.getNumrReservadoProcesm().toString());
		if (documento.getNumrDocumentoOrigem() != null)
			mapItemRelatorio.put("docOrigem", documento
					.getNumrDocumentoOrigem().toString());
		if (documento.getReceitaDetalhe() != null)
			mapItemRelatorio.put("detalheReceita", documento
					.getReceitaDetalhe().getDescDetalheReceita().toString());
		if (documento.getTipoDocumentoArrec() != null)
			mapItemRelatorio.put("especReceita", documento
					.getTipoDocumentoArrec().toString());
		
		if (documento.getTipoDocumentoArrec() != null)
			mapItemRelatorio.put("especReceitaNome", documento
					.getTipoDocumentoArrec().getDescTipoDocumentoArrec().toString());
		
		if (documento.getRefeMes() != null)
			mapItemRelatorio.put("refMes", documento.getRefeMes()
					.toString());
		if (documento.getRefeAno() != null)
			mapItemRelatorio.put("refAno", documento.getRefeAno()
					.toString());
		if (documento.getNumrParcela() != null)
			mapItemRelatorio.put("parcela", documento.getNumrParcela()
					.toString());
		if (documento.getInfoCompl() != null)
			mapItemRelatorio.put("infoComplementar", documento
					.getInfoCompl().toString());
		if (documento.getDataVencimentoTributo() != null)
			mapItemRelatorio.put("data", sdf.format( documento
					.getDataVencimentoTributo()) );
		if (documento.getDataValidadeCalculo() != null)
			mapItemRelatorio.put("dataValidade", sdf.format( documento.getDataValidadeCalculo()));
		if (documento.getDataEmissao() != null)
			mapItemRelatorio.put("dataEmissao", hora.format( documento.getDataEmissao()));
		if (documento.getValrTotalDocumento() != null)
			mapItemRelatorio.put("valorTotal", valor.format( documento
					.getValrTotalDocumento()));
		if (documento.getContribuinteDocumento() != null) {
			if (documento.getContribuinteDocumento()
					.getNomeRazaoSocialEmitente() != null)
				mapItemRelatorio.put("nomeRazao", documento
						.getContribuinteDocumento()
						.getNomeRazaoSocialEmitente().toString());
			if (documento.getContribuinteDocumento()
					.getNumrInscricaoEmitente() != null)
				mapItemRelatorio.put("inscEstadual", documento
						.getContribuinteDocumento().
						getNumrInscricaoEmitente().toString());
			
			if (documento.getContribuinteDocumento()
					.getNumrCnpjEmitente() != null)
				mapItemRelatorio.put("cnpj", documento
						.getContribuinteDocumento().
						getNumrCnpjEmitente().toString());
			
			if (documento.getContribuinteDocumento()
					.getNumrCpfEmitente() != null)
				mapItemRelatorio.put("cpf", documento
						.getContribuinteDocumento().
						getNumrCpfEmitente().toString());
			
			if (documento.getContribuinteDocumento()
					.getNumrPlacaVeiculo() != null)
				mapItemRelatorio.put("placa", documento
						.getContribuinteDocumento().
						getNumrPlacaVeiculo().toString());
			
			if (documento.getContribuinteDocumento()
					.getInfoEnderecoEmitente() != null)
				mapItemRelatorio.put("endereco", documento
						.getContribuinteDocumento()
						.getInfoEnderecoEmitente().toString());
			
			if (documento.getContribuinteDocumento()
					.getMunicipioEmitente() != null)
				mapItemRelatorio.put("municipio", documento
						.getContribuinteDocumento().getMunicipioEmitente().getNomeMunicipio());
			
			if (documento.getContribuinteDocumento()
					.getMunicipioEmitente() != null)
				mapItemRelatorio.put("uf", documento
						.getContribuinteDocumento().getMunicipioEmitente().getCodgUF());
			if (documento.getContribuinteDocumento()
					.getCodgDddTelefoneEmitente() != null)
				mapItemRelatorio.put("ddd", documento
						.getContribuinteDocumento()
						.getCodgDddTelefoneEmitente().toString());
			
			if (documento.getContribuinteDocumento()
					.getNumrTelefoneEmitente() != null)
				mapItemRelatorio.put("telefone", documento
						.getContribuinteDocumento()
						.getNumrTelefoneEmitente().toString());
			
		}
		
		
	if (documento.getCodgBarra() != null)
		mapItemRelatorio.put("codBarra", documento.getCodgBarra().toString());
	
	
		
		int cont = 1;
		for (AlineaDocumento alinea : documento.getListaAlineaDocumento()) {
			String campo = "alinea" + cont;
			
			String total = "valor" + cont;	
			DominioGenerico dominioGenerico = new DominioGenerico();
			dominioGenerico=dominioNeg.buscarIdDominio(alinea.getTipoAlinea().toString(), "TIPO_ALINEA_VALOR");
			
			if ((dominioGenerico.getDescricao() != null) &&  (alinea.getTipoAlinea() != null) &&
					(alinea.getReceitaTrib().getReceitaOrcamentaria().getCodgNaturezaReceita() != null))
			{
			
			mapItemRelatorio.put(campo,dominioGenerico.getDescricao() + " (" +
					alinea.getTipoAlinea()
					+ alinea.getReceitaTrib().getReceitaOrcamentaria().getCodgNaturezaReceita() 
					+ ")");
			}
			mapItemRelatorio.put(total, valor.format( alinea.getValrAlinea()));
			
			cont++;
		}
		
		fields.add(mapItemRelatorio);
		if (!fields.isEmpty()) {
			ReportGenerator reportGenerator2 = new ReportGenerator();
			reportGenerator2.printReport("P", params,
					"relatorioEmissaoDare.jasper", "emissaoDare", fields);
		} else {
			addMensagemFaces("Não existem Receitas Tributarias.");
		}
//	} catch (ConsultarException e) {
//		e.printStackTrace();
	} catch (JRException ex) {
		addMensagemFaces("Erro: " + ex.getMessage(),
				FacesMessage.SEVERITY_INFO);
	} catch (Exception ex) {
		addMensagemFaces("Erro: " + ex.getMessage(),
				FacesMessage.SEVERITY_INFO);
	}
}
}[/code]